فمثلاً قد تحتاج لأن تضيف TextBox أو Button بحسب نتائج سابقة لإختيار المستخدم وغيرها من أمثلة .
في هذه المقالة سأشرح بمثال بسيط الطريقة التي نضيف بها هذه الأدوات و كيف نستخدم قيمها و نربطها بالأحداث Event التي نحتاجها و على أساسها يمكن أن تطلق العنان لمخيلتك في تطبيقها بأي شكل تريد.
قم بفتح مشروع Web Site و أضف صفحة جديدة Web Form ثم من شريط الأدوات Tool Box قم بسحب أداة PlaceHolder
و أفلتها في الصفحة التي قمت بإضافتها و كذك قم بإضافة أداة ListBox.
PlaceHolder هي عبارة عن أداة تعمل كحاوية للأدوات التي سنضيفها لاحقاً
الآن في محرر الكود و في حدث Pagee load قم بتعريف كلآ من التالي Label,Textbox,Button و أسند الخصائص الخاص بهم
و هذا هو الكود الذي سنكتبه:
For x = 1 To 2
Dim l As New Label 'عرفنا أداة عرض نصوص
Dim t As New TextBox ' عرفنا أداة إدخال النصوص
Dim br As New HtmlGenericControl("br") ' Htmlالتي نستخدمها لنزول سطر في كود<\br>
'نحدد بعض الخصائص لكل أداة
With l
.Text = "name" & x
.ID = "label" & x
End With
With t
.ID = "textbox" & x
.Text = "Test" & x
End With
'هنا نقوم بإضافة هذه الأدوات لأداة التي ستحويها
PlaceHolder1.Controls.Add(l)
PlaceHolder1.Controls.Add(t)
PlaceHolder1.Controls.Add(br)
Next
Dim b As New Button ' عرفنا الزر
'نحدد بعض الخصائص لهذا الزر
With b
.ID = "Button1"
.Text = "click Here To get Value"
End With
'هنا نقوم بإضافة الحدث الذي نريده للزر
' وهو الإجراء الفرعي الذي قمنا بإنشاءه ButtonClicked
AddHandler b.Click, AddressOf ButtonClicked
'أضفنا الزر للأداة التي ستحويها
PlaceHolder1.Controls.Add(b)
Public Sub ButtonClicked(ByVal sender As Object, ByVal e As EventArgs)
sender.text = "you clicked me" ' هنا الأداة التي ربطنا الحدث بها sender
' لتغير قيمتها Id هنا أقوم بالبحث عن أحد الأدوات ب
Dim x As TextBox = TryCast(PlaceHolder1.FindControl("textbox1"), TextBox)
x.Text = "hi Programer"
'List أقوم بإيجاد كل الأدوات التي أضفناها للحاوي و أضيف المعرف الخاص به
For Each c As Control In PlaceHolder1.Controls
If TypeOf (c) Is TextBox Then
ListBox1.Items.Add(c.ID & vbTab & " -- " & TryCast(c, TextBox).Text)
Else
ListBox1.Items.Add(c.ID)
End If
Next
End Sub
الآن قم بتشغيل الصفحة و إذا أردت قم بكتابة أي نص في Text Box Dim l As New Label 'عرفنا أداة عرض نصوص
Dim t As New TextBox ' عرفنا أداة إدخال النصوص
Dim br As New HtmlGenericControl("br") ' Htmlالتي نستخدمها لنزول سطر في كود<\br>
'نحدد بعض الخصائص لكل أداة
With l
.Text = "name" & x
.ID = "label" & x
End With
With t
.ID = "textbox" & x
.Text = "Test" & x
End With
'هنا نقوم بإضافة هذه الأدوات لأداة التي ستحويها
PlaceHolder1.Controls.Add(l)
PlaceHolder1.Controls.Add(t)
PlaceHolder1.Controls.Add(br)
Next
Dim b As New Button ' عرفنا الزر
'نحدد بعض الخصائص لهذا الزر
With b
.ID = "Button1"
.Text = "click Here To get Value"
End With
'هنا نقوم بإضافة الحدث الذي نريده للزر
' وهو الإجراء الفرعي الذي قمنا بإنشاءه ButtonClicked
AddHandler b.Click, AddressOf ButtonClicked
'أضفنا الزر للأداة التي ستحويها
PlaceHolder1.Controls.Add(b)
قم الآن بكتابة الإجراء التالي و هو الذي ربطناها سابقاً بزر الذي سنضيفه للصفحة
sender.text = "you clicked me" ' هنا الأداة التي ربطنا الحدث بها sender
' لتغير قيمتها Id هنا أقوم بالبحث عن أحد الأدوات ب
Dim x As TextBox = TryCast(PlaceHolder1.FindControl("textbox1"), TextBox)
x.Text = "hi Programer"
'List أقوم بإيجاد كل الأدوات التي أضفناها للحاوي و أضيف المعرف الخاص به
For Each c As Control In PlaceHolder1.Controls
If TypeOf (c) Is TextBox Then
ListBox1.Items.Add(c.ID & vbTab & " -- " & TryCast(c, TextBox).Text)
Else
ListBox1.Items.Add(c.ID)
End If
Next
End Sub
و بعدها إضغط على الزر
السلام عليكم
ردحذفكل الشكر على هذا الشرح
عندي استفسار
إذا كنت أريد التعامل مع القيم التي أدخلتها في التكست بوكس بجمع قيم جميع التكست بوكس ووضعها في تكست بوكس آخر ماهي الطريقه
يعطيك العافيه