در بعضی از برنامه ها امکان دارد که شما نیاز داشته باشید که در هنگام اجرای برنامه یک کنترل یا چند کنترل را به طور دینامیک به فرم اضافه کنید.شما در VB 6 جیزی شبیه آرایه ایی از کنترل ها استفاده می کردید ولی در VB.Net وجود ندارد.
شما میتوانید هر کنترلی را در زمان اجرا فقط با ساختن نمونه ایی از آن
به فرم اضافه کنید . کدهای شما میتوانند خصوصیات اولیه کنترل را مانند موقعیت ، اندازه و... را در زمان اجرا تعریف کنند. و همچنین شما می توانید رویدادهای کنترل را به کدهای خود مربوط کنید اگر چه این کدها باید از قبل موجود باشند.
برای ساختن کنترل در زمان اجرا یک پروژه ی ویندوز ایجاد کنید ودر قسمت کد Form1 کد های زیر را وارد کنید.
Private Sub ShowTheTime(ByVal sender As System.Object, _
ByVal e As System.EventArgs)
' ----- Display the time in the text box, if it exists.
Dim theTextBox As TextBox
' ----- Locate and update the text control.
theTextBox = Me.Controls("TimeTextBox")
If (theTextBox IsNot Nothing) Then
theTextBox.Text = Now.ToLongTimeString( )
End If
End Sub
Private Sub Form1_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Load
' ----- Add controls at runtime.
Dim dynamicText As TextBox = Nothing
Dim dynamicButton As Button
' ----- Dynamically add a text box control to the form.
dynamicText = New Windows.Forms.TextBox
dynamicText.Name = "TimeTextBox"
dynamicText.Location = New System.Drawing.Point(8, 8)
dynamicText.Size = New System.Drawing.Size(232, 20)
dynamicText.TabIndex = 0
Me.Controls.Add(dynamicText)
' ----- Dynamically add a button control to the form.
dynamicButton = New Windows.Forms.Button
dynamicButton.Location = New System.Drawing.Point(144, 32)
dynamicButton.Size = New System.Drawing.Size(99, 23)
dynamicButton.Text = "Get Time"
dynamicButton.UseVisualStyleBackColor = True
dynamicButton.TabIndex = 1
Me.Controls.Add(dynamicButton)
' ----- Connect the button to an event handler.
AddHandler dynamicButton.Click, AddressOf ShowTheTime
End Sub
بعد از اجرای برنامه خواهید دید که یک کنترل TextBox,Button به فرم اضافه میشود و با کلیک بر روی دکمه زمان فعلی در کادر متن ظاهر میشود
(کد ها ساده و کاملا واضح هستند و با وجود مستندات نیازی به توضیح کد ها نمی بینم اگر مشکلی هست ذکر کنید تا توضیح بدم)