//為button1繫結乙個事件處理程式
button btn =
new button();
btn.click +=
neweventhandler(button2_click);
//獲取button類定義的所有事件的資訊
propertyinfo pi =
( typeof(button)).getproperty(
"events
", bindingflags.instance |
bindingflags.nonpublic);
//獲取button物件btn的事件處理程式列表
eventhandlerlist ehl =
(eventhandlerlist)pi.getvalue(btn,
null);
//獲取control類click事件的字段資訊
fieldinfo fieldinfo =
( typeof(control)).getfield(
"eventclick
", bindingflags.static |
bindingflags.nonpublic);
//用獲取的click事件的字段資訊,去匹配btn物件的事件處理程式列表,獲取btn物件click事件的委託物件
//事件使用委託定義的,c#中的委託時多播委託,可以繫結多個事件處理程式,當事件發生時,這些事件處理程式被依次執行
//因此delegate物件,有乙個getinvocationlist方法,用來獲取這個委託已經繫結的所有事件處理程式
delegate
d = ehl[fieldinfo.getvalue(
null)];
foreach (delegate del
in d.getinvocationlist())
private
void button1_click(
object sender, eventargs e)
private
void button2_click(
object sender, eventargs e)
Spring如何判斷某個類用了某個註解
spring提供了乙個annotationutils類用於判斷某個類是否用了某個註解,以 kafkalistener為例,kafkalistener ann annotationutils.findannotation clazz,kafkalistener.class clazz為使用了該註解的類...
在linux下如何判斷是否已經安裝某個軟體?
我的系統是red hat 我用命令rpm查是否安裝了某個軟體 例如 matlab 與 fluent 得到了如下的結果 我用rpm qa grep matlab 回車後沒有任何顯示 我用rpm qa fluent 回車後沒有任何顯示 我用rpm qa vasp 回車後沒有任何顯示 但實際上肯定是裝了m...
如何判斷某個彈出視窗已經被開啟及重新整理
web開發中,父子視窗的操作很是常用,開啟子視窗的方式有多種,多數情況下這種模式用得比較多,大家也都很熟悉,貌似一種情況相對會用得少點,google出一篇帖子,解決了乙個問題,記之備忘。問題描述 window.open 出來的視窗,如何判斷已經開啟?如果開啟,則將其設定為當前焦點視窗,並過載資料即重...