當前位置:
首頁 >
学习笔记:VB.net动态添加控件数组并传递事件
發布時間:2024/1/1
55
豆豆
生活随笔
收集整理的這篇文章主要介紹了
学习笔记:VB.net动态添加控件数组并传递事件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習筆記:VB.net動態添加控件數組并傳遞事件
- 控件數組和事件
- “中間人”
- 動態添加控件
控件數組和事件
新建一個用戶窗體,在定義控件數組時,不能用Withevnets來定義數組
即使可以,為每一個數組成員編寫事件也是非常麻煩的,考慮通過一個“中間人”來傳遞事件
“中間人”
用繼承的方法為Button控件增加一些事件、屬性和方法
Public Class MyButtonInherits System.Windows.Forms.ButtonPublic BtPtr As MyButton = MePublic BtNo As LongPublic Event MyEventMouseClick()Public Sub RaiseMyEventMouseClick(No As Long)BtNo = NoRaiseEvent MyEventMouseClick()End SubPrivate Sub MyButton_MouseClick() Handles Me.MouseClickBtPtr.RaiseMyEventMouseClick(BtNo)End Sub End Class這里BtPtr是一個指針,每當新的實例一個MyButton控件的時候,讓其指向某個特定的不在數組中的Button控件(這個控件在面板上不顯示出來),這個特定的Button控件用來傳遞MouseClick事件
BtNo記錄了這個實例MyButton所在數組的序列號
每當按鍵的MouseClick事件觸發時,便會調用BtPtr的RaiseMyEventMouseClick方法來觸發BtPtr的MyEventMouseClick事件并傳遞按鍵的代號BtNo
動態添加控件
新建一個窗體Form1,添加按鈕Button1,并填寫如下代碼:
Public Class Form1Dim WithEvents Bt As New MyButtonDim BtArr(10) As MyButtonDim i As Long = 0Dim p As PointPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickIf Not i > 10 ThenBtArr(i) = New MyButtonBtArr(i).BtNo = iBtArr(i).BtPtr = BtBtArr(i).Text = "按鈕" & ip.X = 40p.Y = 40 + 30 * iBtArr(i).Location = pMe.Controls.Add(BtArr(i))i = i + 1End IfEnd SubPrivate Sub Bt_MyEventMouseClick() Handles Bt.MyEventMouseClickMessageBox.Show("按鈕" & Bt.BtNo & "按下了")End SubEnd ClassBt是一個MyButton控件,但并不在窗體上顯示出來,所有實例化的BtArr()成員中的BtPrt都會指向Bt
當Bt的MyEventMouseClick事件觸發時,便會顯示是幾號按鈕被按下了。
總結
以上是生活随笔為你收集整理的学习笔记:VB.net动态添加控件数组并传递事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cisco ssl vpn设备和outl
- 下一篇: 与古鲁打交道的礼节和教养(部分摘自图书-