View Full Version : ایجاد اشیاء به صورت پویا در VB.Net
alineghabi
پنج شنبه 28 دی 1385, 01:40 صبح
چگونه در VB.net میتونم یک Button در زمان اجرا ایجاد کنم و event های اونو بزارم
Ner'zhul Arthas
پنج شنبه 28 دی 1385, 02:17 صبح
اینطوری:
Private B(63) As PictureBox
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Byte = 0 To 7
For j As Byte = 0 To 7
B(i * 8 + j) = New PictureBox
B(i * 8 + j).Parent = Panel1
B(i * 8 + j).Tag = i * 8 + j
B(i * 8 + j).Size = New Size(49, 49)
B(i * 8 + j).Location = New Point(((j * 48) + 16), ((i * 48) + 16))
B(i * 8 + j).BorderStyle = BorderStyle.FixedSingle
B(i * 8 + j).SizeMode = PictureBoxSizeMode.CenterImage
AddHandler B(i * 8 + j).Click, AddressOf BPicturebox_Click
Next
Next
End Sub
Private Sub BPicturebox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Select Case sender.tag
Case 0
'دستور دلخواه
Case 1
'دستور دلخواه
Case 2
'دستور دلخواه
Case 3
'دستور دلخواه
'...
End Select
End Sub
امیدوارم نپیچونده باشم.
اگر خواستید بگید خط به خط توضیح بدم یا این که یه ساده مثل همون مثال که خودتون گفتید بنویسم.
alineghabi
پنج شنبه 28 دی 1385, 02:34 صبح
اینجوریشو میدونم میخوام مثل VB 6 به صورت زیر ایجاد کنم ولی نمیشه
Option Explicit
Private WithEvents label1 As Label
Private WithEvents Check1 As CheckBox
Private Sub label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Check1.Caption = "Checkbox"
End Sub
Private Sub Check1_Click()
MsgBox "Clicked"
End Sub
Private Sub label1_Click()
Form1.BackColor = &H80FF&
End Sub
Private Sub Form_Load()
Set Check1 = Controls.Add("VB.checkbox", "MyButton")
Set label1 = Controls.Add("VB.label", "My")
With Check1
.Move 0, 0, 1200, 315
.Visible = True
End With
With label1
.Left = 400
.Top = 700
.Visible = True
.Caption = "Label"
End With
End Sub
چیکار کنم؟
Ner'zhul Arthas
پنج شنبه 28 دی 1385, 03:08 صبح
چیش نمیشه؟
alineghabi
پنج شنبه 28 دی 1385, 03:23 صبح
خطا میده و شئء ایجاد نمیشه
Ner'zhul Arthas
پنج شنبه 28 دی 1385, 03:25 صبح
اگر میشه سورس دات نتش رو بذارید.
alineghabi
پنج شنبه 28 دی 1385, 20:47 عصر
خودم پشداش کردم
اینم مثالش
Ner'zhul Arthas
جمعه 29 دی 1385, 04:01 صبح
به دستور .Visible = True نیاز نیست.
parent رو هم میتونید me بنویسید تا تو فرم بیاد و نیاز به panel نداشته باشه.
With label1
'.Parent = Panel1
.Parent = Me
.Font = New System.Drawing.Font("Arial", 16)
.ForeColor = Color.DarkOrchid
.Left = 100
.Top = 100
'.Visible = True
.Text = "Label"
End With
دستور زیر هم میتونه Event رو به sub مورد نظر بده.
AddHandler objecte_morede_nazar.evente_morede_nazar, AddressOf name_sube_morede_nazar
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.