呼叫乙個按鈕的Click事件(利用反射)

2021-09-07 21:53:23 字數 1742 閱讀 3300

做了幾次。每次都忘記。所以記錄下來。

測試環境如下:

[csharp]view plain

copy

//建立乙個函式

private

void callonclick(button btn)  

//呼叫例子。

//呼叫button1的onclick

callonclick(button1);  

//呼叫button5的onclick

callonclick(button5);  

擴充套件一下,可以呼叫更多的事件。

[csharp]view plain

copy

private

void callbuttonevent(button btn, string eventname)  

//呼叫例子。

//呼叫button1的onclick

callbuttonevent(button1,"onclick");  

//呼叫button5的onkeypress

callbuttonevent(button5,"onkeypress");  

現在,再來一次擴充套件。可以處理button,textbox等等的一些事件。

[csharp]view plain

copy

private

void callobjectevent(object obj, string eventname)  

//呼叫例子。

//呼叫button1的onclick

callobjectevent(button1,"onclick");  

//呼叫button5的onkeypress

callobjectevent(button5,"onkeypress");  

//呼叫text1的ontextchanged

callobjectevent(text1, "ontextchanged");  

繼續來多乙個擴充套件。可以傳入事件引數。

[csharp]view plain

copy

private

void callobjectevent(object obj, string eventname, eventargs e=null)  

//呼叫例子。

//呼叫button1的onclick

callobjectevent(button1,"onclick");  

//呼叫button5的onkeypress

callobjectevent(button5,"onkeypress");  

//呼叫text1的ontextchanged

callobjectevent(text1, "ontextchanged");  

//呼叫form的keypress事件, this就是那個winform, 並且傳入回車鍵

callobjectevent(this, "onkeypress", new keypresseventargs((char)13));  

測試的時候,是在winform裡的控制項的呼叫。在程式裡要加入

[csharp]view plain

copy

using system.reflection;  

引用自 :

C 呼叫乙個按鈕的Click事件

1 button1.performclick 2 button1 click null,null 3 button click null,new eventargs 最開始的呼叫方法 建立乙個函式 private void callonclick button btn 呼叫例子。呼叫button1的...

C 呼叫乙個按鈕的Click事件(利用反射)

1 button1.performclick 2 button1 click null,null 3 button click null,new eventargs 最開始的呼叫方法 建立乙個函式 private void callonclick button btn 呼叫例子。呼叫button1的...

在MVVM模式中,按鈕Click事件的繫結方法

在mvvm模式中,我們將button的方法寫到viewmodel中,然後繫結到前端介面。通常的做法是寫乙個類,繼承icommand介面,然而如果按鈕比較多的話,就需要寫很多的類,對於後期維護造成很大的不變,微軟提供了乙個delegatecommand類,可以簡化開發。使用方法如下 首先生命viewm...