你需要的應(yīng)該是反射,類似如下,我測(cè)試通過的:
站在用戶的角度思考問題,與客戶深入溝通,找到榆林網(wǎng)站設(shè)計(jì)與榆林網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋榆林地區(qū)。
Imports?System.Reflection
Public?Class?Form1
Public?Sub?MMMToolStripMenuItem_Click(sender?As?Object,?e?As?EventArgs)?Handles?MMMToolStripMenuItem.Click
MsgBox("menu?click")
End?Sub
'在按鈕事件處理里面通過反射名稱調(diào)用相應(yīng)菜單事件
Public?Sub?CallEventMethod(sender?As?Object,?e?As?EventArgs)
Dim?b?As?Button?=?sender?'獲取點(diǎn)擊的按鈕
'拼接菜單事件名稱
Dim?MethodName?As?String?=?b.Name??"ToolStripMenuItem_Click"
Dim?t?As?Type?=?Me.GetType
Dim?m?As?MethodInfo?=?t.GetMethod(MethodName)
'反射方法
m.Invoke(Me,?New?Object()?{Nothing,?Nothing})
End?Sub
'動(dòng)態(tài)生成了按鈕
Private?Sub?Form1_Load(sender?As?Object,?e?As?EventArgs)?Handles?MyBase.Load
Dim?btn?As?New?Button
btn.Location?=?New?Point(100,?100)
btn.Name?=?"MMM"?'關(guān)鍵
btn.Text?=?"MMM"
'注冊(cè)事件
AddHandler?btn.Click,?AddressOf?Me.CallEventMethod
Me.Controls.Add(btn)?
End?Sub
End?Class
'這是數(shù)組的一個(gè)方法了,可是可以給數(shù)組定義擴(kuò)展方法來實(shí)現(xiàn)這種形式。不過要給Item每個(gè)成員能動(dòng)態(tài)生成相應(yīng)方法,想不出其它簡(jiǎn)單點(diǎn)的辦法,只能一個(gè)一個(gè)的添加擴(kuò)展方法。
Namespace?測(cè)試
Public?Class?Item
Public?Number()?As?String
Public?Name?As?String
Public?Symbol?As?String
Public?Value?As?Single
Public?Unit?As?String
Public?Description?As?String
Public?Remarks?As?String
End?Class
Public?Class?XX
Public?tty()?As?Item
Public?Sub?New()
tty(0).Name?=?"Women"
tty(0).Value?=?198000
tty(1).Name?=?"temen"
tty.Name("temen").Value?=?99999
End?Sub
End?Class
Public?Module?Module1
System.Runtime.CompilerServices.Extension()?_?
Public?Function?Name(ByVal?she?As?Item(),?ByVal?key?As?String)?As?Item?'定義擴(kuò)展方法功能?在net.3.5前的版本像似沒有。
For?Each?it?In?she
If?it.Name?=?key?Then
Return?it
End?If
Next
Return?Nothing
End?Function
End?Module
End?Namespace
增加事件用 AddHandler 語(yǔ)句
AddHandler xxxx.click Addressof xxxx()
一個(gè) sub 可以接受多個(gè) click 事件
似有控件遍歷窗體控件集合,或在控件集合中查詢?cè)摽丶郑每丶苯用?/p>
網(wǎng)頁(yè)名稱:vb.net動(dòng)態(tài)生成類,vb動(dòng)態(tài)庫(kù)制作
轉(zhuǎn)載來于:http://weahome.cn/article/dsgejoj.html