الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أنشئت دالة Inputbox ، الدالة لا ترسل النتائج الظاهرة في مربع النص

مغلق
بدأه mohdabdu في 15 سبتمبر 2007 · 3 رد · 1,114 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ، من أول ما رجعت من المدرسة قررت أن أقضي على دالة InputBox الخاصة بمايكروسوفت ، وأنشئ دالتي الجديدة(( MyInputBox )) ، صبيت فيها كل خبرتي وعصرتي مخي حتى أحل المشكلة التي واجهتني في الدالة الجديدة بلا جدوى [يبدو أن مايكروسوفت ستقضي علي قبل الفطور]

المــشــكلــة: انشئت دالة مشابهة InputBox وقلت حتى استفيد راح أضيف نافذة الـInputBox بأدواتها ديناميكياً وهنا بدأت المشكلة ، أردت من زر (موافق) إرسال قيمة مربع النص إلى المتغيير الذي استخدم دالتي((العبقرية)) ولم استطيع ، للتوضيح الأكثر حمل MyInputBox.rar في المرفقات ، السلام عليكم ورحمة الله

MyInputBox.rar

تم تعديل هذه المشاركة بواسطة mohdabdu في 15 سبتمبر 2007 في 20:50

#2

السلام عليكم ، بالله سؤال بسيط زي هذا ما تحلوه ، ليش التطنيش ، وان كنت مستخسر تحميل المرفقات إليك الكود حق الموديل الذي به الدالة MyInputBox

الغرض من السؤال التعلم فقط ، وفي المشاريع العملية مو معقول أضيع وقتي في إنشاء مربع ادخال نصوص؟؟؟

Module ModuleMyInputbox
	Enum TextBoxMode As Byte
		TextSingle = 1
		TextMultiLine = 2
	End Enum
	Enum TextBoxDataType As Byte
		TextBoxString = 1
		TextBoxNumber = 2
	End Enum
	Public f As New Form
	Public btnOk As New Button
	Public btnCancel As New Button
	Public txt As New TextBox
	Public lbl As New Label
	Public txtDataType As TextBoxDataType
	Public Function MyInputbox(ByVal Prompt As String, Optional ByVal Title As String = "InputBox", _
	Optional ByVal TextBoxDefaultValue As String = "", Optional ByVal TextBoxMode As TextBoxMode = TextBoxMode.TextSingle, _
	Optional ByVal TextBoxDataType As TextBoxDataType = TextBoxDataType.TextBoxString, Optional ByVal TextBoxAllowNull As Boolean = True, _
	Optional ByVal TextBoxLength As Integer = 0, Optional ByVal AllowCancelButton As Boolean = True, Optional ByVal Xpos As Integer = -1, Optional ByVal Ypos As Integer = -1) As String

		'//التأكد من أن القيمةالافتراضية لمربع الحوار متطابقة مع نوع البيانات
		If TextBoxDataType = ModuleMyInputbox.TextBoxDataType.TextBoxNumber And IsNumeric(TextBoxDefaultValue) = False Then
			MsgBox("القيمة الافتراضية غير متطابقة مع نوع البيانات", MsgBoxStyle.Critical)
			Return ""
			Exit Function
		End If


		'خصائص الفورم الذي سيعرض كأنه مربع حوار\\\\\\\\\\\\\\\\\\\\
		f.Text = Title
		f.Width = 442 : f.Height = 142
		f.Top = Ypos : f.Left = Xpos
		If Xpos = -1 And Ypos = -1 Then f.StartPosition = FormStartPosition.CenterScreen


		btnOk.Width = 94 : btnOk.Height = 36
		btnCancel.Width = 94 : btnCancel.Height = 36
		btnOk.Left = 333 : btnCancel.Left = 333
		btnOk.Top = 18 : btnCancel.Top = 60
		btnOk.Text = "موافق"
		btnCancel.Text = "إلغاء الأمر"

		lbl.Text = Prompt
		lbl.AutoSize = False
		lbl.Width = 320 : lbl.Height = 45
		lbl.Top = 9 : lbl.Left = 7

		txt.Width = 320 : txt.Height = 62
		txt.Left = 7 : txt.Top = 60
		If TextBoxLength > 0 And TextBoxDefaultValue.Length > TextBoxLength Then
			MsgBox("القيمة الافتراضية أكبر من القيمة المحددة", MsgBoxStyle.Critical)
			Return ""
			Exit Function
		End If
		txt.Text = TextBoxDefaultValue
		txt.MaxLength = TextBoxLength
		If TextBoxMode = ModuleMyInputbox.TextBoxMode.TextMultiLine Then
			txt.Multiline = True
			txt.ScrollBars = ScrollBars.Vertical
			f.Height = 163
		End If
		If AllowCancelButton = False Then btnCancel.Enabled = False
		If TextBoxDataType = ModuleMyInputbox.TextBoxDataType.TextBoxNumber Then
			txtDataType = ModuleMyInputbox.TextBoxDataType.TextBoxNumber
		End If
		'نهاية الخصائص\\\\\\\\\\\\\\\\

		f.Controls.Add(txt)
		f.Controls.Add(lbl)
		f.Controls.Add(btnOk)
		f.Controls.Add(btnCancel)

		AddHandler btnOk.Click, New System.EventHandler(AddressOf btnOk_Click)
		f.Show()


		Return "ما قدرت أرجع شئ من مربع النص????"

	End Function

	Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
		'حدث النقر على زر btnOK
		'///أريد من هذا الإجراء تعيين قيمة الدالة التي بالاعلى

	End Sub
End Module
#3

المشكلة في نظري هي كيف توقف الكود قبل Return ولا يستمر بعد الضغط على زر موافق ولا أعلم طريقة تقوم بذلك في حاله استخدام Module

لذلك قمت بستخدام form Dialog ، الكود يحتاج لكثير من التعديل ليناسب أحتياجاتك ولكنه يرجع نتيجة من مربع النص

MyInputBoxD.rar

لا تَقُولن لِشيءٍ ذَا نَاقِصٌ ... وَلَكن أَعمل وَقُل ذَا أكملُ

#4

vbdb, مشكوور وجزاك الله خير ، والكود بعد التعديل

Module ModuleMyInputbox
	Enum TextBoxMode As Byte
		TextSingle = 1
		TextMultiLine = 2
	End Enum
	Enum TextBoxDataType As Byte
		TextBoxString = 1
		TextBoxNumber = 2
	End Enum
	Public f As New Form
	Public btnOk As New Button
	Public btnCancel As New Button
	Public txt As New TextBox
	Public lbl As New Label
	Public txtDataType As TextBoxDataType
	Public Function MyInputbox(ByVal Prompt As String, Optional ByVal Title As String = "InputBox", _
	Optional ByVal TextBoxDefaultValue As String = "", Optional ByVal TextBoxMode As TextBoxMode = TextBoxMode.TextSingle, _
	Optional ByVal TextBoxDataType As TextBoxDataType = TextBoxDataType.TextBoxString, Optional ByVal TextBoxAllowNull As Boolean = True, _
	Optional ByVal TextBoxLength As Integer = 0, Optional ByVal AllowCancelButton As Boolean = True, Optional ByVal Xpos As Integer = -1, Optional ByVal Ypos As Integer = -1) As String

		'//التأكد من أن القيمةالافتراضية لمربع الحوار متطابقة مع نوع البيانات
		If TextBoxDataType = ModuleMyInputbox.TextBoxDataType.TextBoxNumber And IsNumeric(TextBoxDefaultValue) = False Then
			MsgBox("القيمة الافتراضية غير متطابقة مع نوع البيانات", MsgBoxStyle.Critical)
			Return ""
			Exit Function
		End If


		'خصائص الفورم الذي سيعرض كأنه مربع حوار\\\\\\\\\\\\\\\\\\\\
		f.Text = Title
		f.Width = 442 : f.Height = 142
		f.Top = Ypos : f.Left = Xpos
		If Xpos = -1 And Ypos = -1 Then f.StartPosition = FormStartPosition.CenterScreen


		btnOk.Width = 94 : btnOk.Height = 36
		btnCancel.Width = 94 : btnCancel.Height = 36
		btnOk.Left = 333 : btnCancel.Left = 333
		btnOk.Top = 18 : btnCancel.Top = 60
		btnOk.Text = "موافق"
		btnCancel.Text = "إلغاء الأمر"
		btnOk.DialogResult = DialogResult.OK
		btnCancel.DialogResult = DialogResult.Cancel

		lbl.Text = Prompt
		lbl.AutoSize = False
		lbl.Width = 320 : lbl.Height = 45
		lbl.Top = 9 : lbl.Left = 7

		txt.Width = 320 : txt.Height = 62
		txt.Left = 7 : txt.Top = 60
		If TextBoxLength > 0 And TextBoxDefaultValue.Length > TextBoxLength Then
			MsgBox("القيمة الافتراضية أكبر من القيمة المحددة", MsgBoxStyle.Critical)
			Return ""
			Exit Function
		End If
		txt.Text = TextBoxDefaultValue
		txt.MaxLength = TextBoxLength
		If TextBoxMode = ModuleMyInputbox.TextBoxMode.TextMultiLine Then
			txt.Multiline = True
			txt.ScrollBars = ScrollBars.Vertical
			f.Height = 163
		End If
		If AllowCancelButton = False Then btnCancel.Enabled = False
		If TextBoxDataType = ModuleMyInputbox.TextBoxDataType.TextBoxNumber Then
			txtDataType = ModuleMyInputbox.TextBoxDataType.TextBoxNumber
		End If
		'نهاية الخصائص\\\\\\\\\\\\\\\\

		f.Controls.Add(txt)
		f.Controls.Add(lbl)
		f.Controls.Add(btnOk)
		f.Controls.Add(btnCancel)

		AddHandler btnOk.Click, New System.EventHandler(AddressOf btnOk_Click)
		f.ShowDialog()
		If f.DialogResult = DialogResult.OK Then
			Return txt.Text
		Else
			Return ""
		End If

	End Function

	Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

	End Sub
End Module

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…