一個(gè)事半功倍的c#方法 動(dòng)態(tài)注冊(cè)按鈕事件
更新時(shí)間:2010年04月14日 23:42:11 作者:
前幾天在網(wǎng)上看見(jiàn)一個(gè)制作計(jì)算器的c#程序,其中有一個(gè)動(dòng)態(tài)注冊(cè)按鈕事件,覺(jué)的很有用。于是實(shí)際操作了一哈, 確實(shí)比較好。
言歸正傳,下面就來(lái)講講怎樣動(dòng)態(tài)注冊(cè)按鈕事件。
首先,我們需要設(shè)置變量來(lái)獲取點(diǎn)擊一個(gè)數(shù)字按鈕的值,以便在“=”按鈕單擊事件中計(jì)算最終的結(jié)果。下面就是我開(kāi)始的時(shí)候?qū)懙囊欢未a:
public double? value1 = null ;//獲取運(yùn)算符前的數(shù)值
public double? value2 = null ;//獲取運(yùn)算符前的數(shù)值
public type caltype=type .none ;//獲取運(yùn)算符
private void btnvalue1_Click(object sender, EventArgs e)
{
if (value1 == null)
{
value1 = Convert.ToDouble(btnvalue1.Text);
}
else
{
value2 = Convert.ToDouble(btnvalue1.Text);
}
this.txtvalue.Text = btnvalue1.Text;
}“1”按鈕的單擊事件
一共有十個(gè)這樣的數(shù)字鍵按鈕單擊事件
是不是覺(jué)得這樣寫(xiě)很麻煩,于是就有了按鈕注冊(cè)事件。下面是我后面下的一段代碼:
public double? value1 = null ;//獲取運(yùn)算符前的數(shù)值
public double? value2 = null ;//獲取運(yùn)算符后的數(shù)值
public type caltype=type .none ;//獲取運(yùn)算符
private void Form1_Load(object sender, EventArgs e)
{
btnvalue0.Click += new EventHandler(btnvalue_Click);
btnvalue1.Click += new EventHandler(btnvalue_Click);
btnvalue2.Click += new EventHandler(btnvalue_Click);
btnvalue3.Click += new EventHandler(btnvalue_Click);
btnvalue4.Click += new EventHandler(btnvalue_Click);
btnvalue5.Click += new EventHandler(btnvalue_Click);
btnvalue6.Click += new EventHandler(btnvalue_Click);
btnvalue7.Click += new EventHandler(btnvalue_Click);
btnvalue8.Click += new EventHandler(btnvalue_Click);
btnvalue9.Click += new EventHandler(btnvalue_Click);
//通過(guò)EventHandler將按鈕控件的Click事件
綁定到 btnvalue_Click上面,從而動(dòng)態(tài)注冊(cè)按鈕事件
}
private void btnvalue_Click(object sender, EventArgs e)
{
Button btn =(Button)sender ;
//實(shí)例化按鈕,從而獲取當(dāng)前單擊按鈕的值
if (value1 == null)
{
value1 = Convert.ToDouble(btn.Text);
}
else
{
value2 = Convert.ToDouble(btn.Text);
}
this.txtvalue.Text = btn.Text;
}
是不是覺(jué)的比以前簡(jiǎn)單多了。。。。。(要源碼的話請(qǐng)聯(lián)系我 QQ:342468914)
首先,我們需要設(shè)置變量來(lái)獲取點(diǎn)擊一個(gè)數(shù)字按鈕的值,以便在“=”按鈕單擊事件中計(jì)算最終的結(jié)果。下面就是我開(kāi)始的時(shí)候?qū)懙囊欢未a:
復(fù)制代碼 代碼如下:
public double? value1 = null ;//獲取運(yùn)算符前的數(shù)值
public double? value2 = null ;//獲取運(yùn)算符前的數(shù)值
public type caltype=type .none ;//獲取運(yùn)算符
private void btnvalue1_Click(object sender, EventArgs e)
{
if (value1 == null)
{
value1 = Convert.ToDouble(btnvalue1.Text);
}
else
{
value2 = Convert.ToDouble(btnvalue1.Text);
}
this.txtvalue.Text = btnvalue1.Text;
}“1”按鈕的單擊事件
一共有十個(gè)這樣的數(shù)字鍵按鈕單擊事件
是不是覺(jué)得這樣寫(xiě)很麻煩,于是就有了按鈕注冊(cè)事件。下面是我后面下的一段代碼:
復(fù)制代碼 代碼如下:
public double? value1 = null ;//獲取運(yùn)算符前的數(shù)值
public double? value2 = null ;//獲取運(yùn)算符后的數(shù)值
public type caltype=type .none ;//獲取運(yùn)算符
private void Form1_Load(object sender, EventArgs e)
{
btnvalue0.Click += new EventHandler(btnvalue_Click);
btnvalue1.Click += new EventHandler(btnvalue_Click);
btnvalue2.Click += new EventHandler(btnvalue_Click);
btnvalue3.Click += new EventHandler(btnvalue_Click);
btnvalue4.Click += new EventHandler(btnvalue_Click);
btnvalue5.Click += new EventHandler(btnvalue_Click);
btnvalue6.Click += new EventHandler(btnvalue_Click);
btnvalue7.Click += new EventHandler(btnvalue_Click);
btnvalue8.Click += new EventHandler(btnvalue_Click);
btnvalue9.Click += new EventHandler(btnvalue_Click);
//通過(guò)EventHandler將按鈕控件的Click事件
綁定到 btnvalue_Click上面,從而動(dòng)態(tài)注冊(cè)按鈕事件
}
private void btnvalue_Click(object sender, EventArgs e)
{
Button btn =(Button)sender ;
//實(shí)例化按鈕,從而獲取當(dāng)前單擊按鈕的值
if (value1 == null)
{
value1 = Convert.ToDouble(btn.Text);
}
else
{
value2 = Convert.ToDouble(btn.Text);
}
this.txtvalue.Text = btn.Text;
}
是不是覺(jué)的比以前簡(jiǎn)單多了。。。。。(要源碼的話請(qǐng)聯(lián)系我 QQ:342468914)
您可能感興趣的文章:
- C#動(dòng)態(tài)生成按鈕及定義按鈕事件的方法
- C#鍵盤(pán)輸入回車鍵實(shí)現(xiàn)點(diǎn)擊按鈕效果的方法
- C#中Winform窗體Form的關(guān)閉按鈕變灰色的方法
- C# Winform實(shí)現(xiàn)捕獲窗體最小化、最大化、關(guān)閉按鈕事件的方法
- C#窗體編程不顯示最小化、最大化、關(guān)閉按鈕的方法
- c# winform取消右上角關(guān)閉按鈕的實(shí)現(xiàn)方法
- c#重寫(xiě)TabControl控件實(shí)現(xiàn)關(guān)閉按鈕的方法
- C#通過(guò)反射獲取當(dāng)前工程中所有窗體并打開(kāi)的方法
- C#實(shí)現(xiàn)利用反射簡(jiǎn)化給類字段賦值的方法
- C#利用反射技術(shù)實(shí)現(xiàn)去掉按鈕選中時(shí)的邊框效果
相關(guān)文章
asp.net web頁(yè)面自定義分頁(yè)控件使用詳解
這篇文章主要為大家詳細(xì)介紹了asp.net web頁(yè)面自定義分頁(yè)控件使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01ASP.NET MVC中SignalR的簡(jiǎn)單應(yīng)用
這篇文章主要為大家詳細(xì)介紹了ASP.NET MVC中SignalR的簡(jiǎn)單應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07MS SQL 實(shí)現(xiàn)驗(yàn)證字符串是否包含有大小寫(xiě)字母的功能
這篇文章主要介紹了MS SQL 實(shí)現(xiàn)驗(yàn)證字符串是否包含有大小寫(xiě)字母的功能的相關(guān)資料,這樣的功能通常應(yīng)用在字符串的復(fù)雜度需要的朋友可以參考下2016-11-11ASP.NET?MVC開(kāi)發(fā)接入微信公共平臺(tái)
這篇文章主要為大家介紹了微信平臺(tái)開(kāi)發(fā)ASP.NET?MVC接入微信公共平臺(tái)實(shí)現(xiàn)過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04ASP.NET?MVC使用Quartz.NET執(zhí)行定時(shí)任務(wù)
這篇文章介紹了ASP.NET?MVC使用Quartz.NET執(zhí)行定時(shí)任務(wù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09asp.net下實(shí)現(xiàn)輸入數(shù)字的冒泡排序
.net下實(shí)現(xiàn)輸入數(shù)字的冒泡排序2010-03-03Ext.Net學(xué)習(xí)筆記之button小結(jié)
Ext.Net學(xué)習(xí)筆記之button小結(jié),需要的朋友可以參考一下2013-02-02對(duì)ASP.Net的WebAPI項(xiàng)目進(jìn)行測(cè)試
這篇文章介紹了對(duì)WebAPI項(xiàng)目進(jìn)行測(cè)試的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04