兩種方法:
為蘭溪等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及蘭溪網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、蘭溪網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
1. 用WithEvents聲明變量,這樣你就可以像對(duì)待拖上去的控件一樣操作:
Public?Class?Form3
WithEvents?btn?As?New?Button
Private?Sub?Form3_Load(sender?As?Object,?e?As?EventArgs)?Handles?Me.Load
Controls.Add(btn)
End?Sub
Private?Sub?btn_Click(sender?As?Object,?e?As?EventArgs)?Handles?btn.Click
MsgBox(Now)
End?Sub
End?Class
2. 使用AddHandler 語(yǔ)句:
Public?Class?Form3
Private?Sub?Form3_Load(sender?As?Object,?e?As?EventArgs)?Handles?Me.Load
Dim?btn?As?New?Button
AddHandler?btn.Click,?AddressOf?btn_Click
Controls.Add(btn)
End?Sub
Private?Sub?btn_Click(sender?As?Object,?e?As?EventArgs)
MsgBox(Now)
End?Sub
End?Class
WithEvents (Visual Basic):
AddHandler 語(yǔ)句:
聲明事件只需用
private event 事件名稱(參數(shù)表)
在通用部分聲明
引用這個(gè)詞不太恰當(dāng),應(yīng)該說(shuō)是觸發(fā)
在需要觸發(fā)的地方用
raiseevent 事件名稱(參數(shù)表)就可以了
'把圖片的聲明放在外面,類里面過(guò)程外面,而且要用As,不然等會(huì)兒沒法用
Dim myPicture As New System.Windows.Forms.PictureBox()
'動(dòng)態(tài)生成的控件,加一行
Private Sub UserControl1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.Panel3.Controls.Add(myPicture)
myPicture.Size =New System.Drawing.Size(115, 160)
myPicture.TabStop =False
myPicture.Name ="p"
myPicture.Cursor = Cursors.Hand
AddHandler myPicture.Click, AddressOf mypic_Click '添加事件
AddHandler returnid, AddressOf idReturned '綁定事件和過(guò)程
End Sub
'再來(lái)個(gè)事件,放在聲明的地方,就是類里面、過(guò)程外面
Private Event returnid(ByVal id As String) '這個(gè)事件可以傳遞值哦~
'普通的單擊事件
Private Sub mypic_Click()
RaiseEvent returnid(myPicture.Name)
End Sub
'會(huì)傳值的事件過(guò)程
Private Sub idReturned(ByVal id As String)
Dim bookInfo As New BookInfo
bookInfo.Show()
Me.Parent.Enabled = False
'用id變量做點(diǎn)什么吧
End Sub
如果要改事件的簽名(參數(shù)一類的)的話,得重寫控件。你可以這樣自己弄一個(gè)事件。
變量值的改變本身就是你程序控制的,也就是說(shuō)它的變化完全是在你掌控中的,做變量值改變的觸發(fā)事件實(shí)在沒有價(jià)值。
通常編程者關(guān)心的應(yīng)該是用戶操作的控件值發(fā)生變化,但這些控件的事件通常都是定義好的,且已經(jīng)定義的非常全了。
猜測(cè)摟主其實(shí)是想學(xué)習(xí)自己制作控件,那就高深了,很多底層的事件通常都是從基本控件中獲得的!
在代碼的開頭:
用WithEvents聲明類,比如 Private WithEvents 變量名 As New 類名
用Handles邦定事件,比如Private Sub 過(guò)程名() Handles 變量.事件名
最后引發(fā)事件就相當(dāng)于執(zhí)行定義好的一個(gè)綁定過(guò)程