برگزیده های پرشین تولز

نحوه فراخواني رويداد هاي يك كنترل جديد بعد از اضافه كردن به يك كنترل ديگر

ehsanraf

کاربر تازه وارد
تاریخ عضویت
12 نوامبر 2005
نوشته‌ها
14
لایک‌ها
0
من به يك كنترل تيبل يك كنترل باتون اضافه كردم با استفاده از متد controls.add حالا براي فراخواني رويداد هاي اين كنترل چه جوري بايد عمل كنم يعني وقتي button كليك ميشه چه تابعي بايد فراخواني بشه?

يعني مشكل اينجاست كه نميدونم چه جوري رويداد هاي كنترلي كه بوجود اومده رو فراوخواني كنم

اگر تعداد button ها n تا بود بايد چه جوري بايد عمل كرد؟

===================

dim bt AS NEW button
bt.text =test1
table1.controls.add(bt
__________________
 

Parham

Registered User
تاریخ عضویت
24 سپتامبر 2003
نوشته‌ها
1,042
لایک‌ها
2
تو VB.net اینجوریه:
کد:
AddHandler btn.Click, AddressOf bt_Click
که اینجا bt_Click روالی است که شما باید اون رو از قبل بنویسید و تو کد داشته باشید:
کد:
    Private Sub btn_Click(ByVal sender As Object, ByVal e As EventArgs)
	
	'Your code for btn Click event

    End Sub
اگر که تعداد Button ها زیاد باشه هم هیچ فرقی نمیکنه و میشه برای همه اونها از یک روال استفاده کنید. ولی برای تشخیص اینکه کدوم دکمه کلیک شده باید از یک خصوصیت اون مثلا Name یا Tag استفاده کنید.
مثلا با این کد دکمه ها رو اضافه میکنیم از ۱ تا n که اینجا ۱۰ هست و برای هر دکمه یک نام و خصوصیت Tag رو مشخص میکنیم:
کد:
        Dim i As Integer = 1
        Dim n As Integer = 10
        For i = 1 To n
            Dim bt As New Button
            bt.Text = "Button " & i.ToString
            bt.Tag = i
            Me.Controls.Add(bt)
            AddHandler bt.Click, AddressOf bt_Click

        Next

حالا تو روال کلیکی که تعریف کردیم به این شکل دکمه ها رو تشخیص میدیم:
کد:
    Sub bt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Select Case CType(sender, Button).Tag.ToString
            Case "1"
                'Code for bt1 Click event
            Case "2"
                'Code for bt2 Click event
            Case "n"
                'Code for btn Click event
        End Select
    End Sub

موفق باشید.:happy:
 

ehsanraf

کاربر تازه وارد
تاریخ عضویت
12 نوامبر 2005
نوشته‌ها
14
لایک‌ها
0
خيلي ممنون ، همين روش جواب داد
 
بالا