اگر با دات نت کار میکنی:
کد:
Dim txtNew As New TextBox
txtNew.Location = New Point(100, 100)
txtNew.Text = "New Text Box!"
Me.Controls.Add(txtNew)
اگر VB 6 کار میکنی دو راه داری یکی کد زیر که افزودن Event براش یک مقدار مشکله (اگر خواستی بگو تا کدش رو بزارم):
کد:
Form1.Controls.Add "VB.Label", "lblNew", Form1
With Form1!lblNew
.Visible = True
.Width = 2000
.Caption = "Dynamic Label"
End With
راه دیگه اینه که مثلا یک کنترل Label تو حالت Design اضافه کنی و Index اون رو ۰ بزاری. که میشه یک آرایه. حالا به راحتی میتونی با دستور Load هر تعدادی که نیاز هست و البته تا جایی که حافظه اجازه میده از اون کنترل ایجاد کنی و برای Events هم تو حالت Design باید کد رو برای همون کنترل اولیه که ایجاد کردی بنویسی و حتما میدونی که آرایه های کنترلی رو با Index میتونی تو رویدادها تشخیص بدی و در صورت نیاز کد جدا برای هر کدوم تعریف کنی.
فرض میکنیم که یک Label با نام lblBase1 اضافه کردی:
کد:
iIndex = lblBase1.UBound + 1
Load lblBase1(iIndex)
lblBase1(iIndex).Caption = "Label " & CStr(iIndex)
lblBase1(iIndex).Visible = True
تو این کد ما ابتدا اولین Index ای رو که میتونیم ایجاد کنیم با استفاده از خط اول بدست میاریم و بعد همون رو لود میکنیم و الی آخر ...
من یک برنامه نمونه برای این آخری ضمیمه میکنم که برای رویداد کلیک هم یک کد ساده نوشتم. امیدوارم که توضیحات مقبول افتد!:wacko: