PDA

View Full Version : نوشتن رویداد برای کنترل های با آرایه دو بعدی



mahdi1373
پنج شنبه 17 تیر 1389, 09:16 صبح
سلام،
من در برنامه ام کدی نوشتم که در زمان اجرا یه آرایه 2*2 از یه Button می سازه و اون رو روی فرم قرار می ده.
حالا می خواهم رویداد کلیک برای این ها بنویسم. چطور باید این کار رو بکنم؟ از کجا بفهمم کدومشون کلیک شده؟ لطفا راهنمایی کنید.
این هم کد برنامه:



Dim blk(2, 2) As Button
For a = 0 To 2
For b = 0 To 2
blk(a, b) = New Button
Me.Controls.Add(blk(a, b))
Next
Nextممنونم.

ACorvinus
پنج شنبه 17 تیر 1389, 09:39 صبح
سلام.

امیدوارم به دردتون بخوره.

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim blk(2, 2) As Button
Dim x As Integer = 5
Dim y As Integer = 10
For a = 0 To 2
For b = 0 To 2
Dim btn As New Button

btn.Name = "btn" + a.ToString + b.ToString
btn.Text = "btn" + a.ToString + b.ToString
btn.Location = New Point(x, y)
AddHandler btn.Click, AddressOf btn_Click
blk(a, b) = btn
Me.Controls.Add(blk(a, b))

y += 22
Next
Next
End Sub

Private Sub btn_Click(ByVal sender As Object, ByVal e As System.EventArgs)
MsgBox(DirectCast(sender, Button).Name + " is Clicked")
End Sub

ACorvinus
پنج شنبه 17 تیر 1389, 09:41 صبح
سلام دوباره.

فقط میخواستم بگم من نفهمیدم برای چی از آرایه استفاده می کنین؟!!!! چون نفهمیدم میخواین چیکار بکنین به همین دلیل فقط کمکتون کردم به چیزی که میخواین برسین. موفق باشین.

mahdi1373
پنج شنبه 17 تیر 1389, 10:22 صبح
بسیار ممنونم،
چرا btn.Name و btn.Text رو عوض کردید؟


فقط میخواستم بگم من نفهمیدم برای چی از آرایه استفاده می کنین؟!!!!من می خواهم یه بازی XO بسازم، برای همین از آرایه استفاده می کنم. شما راه بهتری دارید؟

hero4000
پنج شنبه 17 تیر 1389, 10:43 صبح
چرا btn.Name و btn.Text رو عوض کردید؟


دوستمون براي اين اين کار رو کردند که بعدا ( يعني توي رويداد کليک ) متوجه بشين که روي کدوم Button کليک شده

ACorvinus
پنج شنبه 17 تیر 1389, 10:57 صبح
سلام. خب این یه کار سلیقه ای بود. btnName رو توصیه می کنم بذارین باشه ولی btnText رو میتونین حذف کنین.

موفق باشین.