一個(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)輸入回車(chē)鍵實(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(C#) Web Api通過(guò)文件流下載文件的實(shí)例
這篇文章主要介紹了ASP.NET(C#) Web Api通過(guò)文件流下載文件的方法,提供源碼下載,需要的朋友可以參考下。2016-06-06
.Net8.0 WebApi發(fā)布到IIS詳細(xì)步驟
本文主要介紹了.Net8.0 WebApi發(fā)布到IIS詳細(xì)步驟, 文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05
asp.net的web頁(yè)面(aspx)數(shù)據(jù)量過(guò)多時(shí)提交失敗對(duì)策
asp.net的web頁(yè)面,數(shù)據(jù)量過(guò)多時(shí)提交失敗的情況想必有很多朋友都有遇到過(guò)吧,下面與大家分享下詳細(xì)的解決方法2013-05-05
.net core項(xiàng)目中常用的幾款類庫(kù)詳解(值得收藏)
這篇文章主要給大家介紹了關(guān)于.net core項(xiàng)目中常用的幾款類庫(kù)的相關(guān)資料,文章通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用.net core具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
asp.net發(fā)布后web.config中compilation的debug的值true和false區(qū)別點(diǎn)整理
在本篇文章里小編給大家整理的是一篇關(guān)于asp.net發(fā)布后web.config中compilation的debug的值true和false區(qū)別點(diǎn)內(nèi)容,有需要的為朋友們可以參考下。2020-01-01
C# 沒(méi)有動(dòng)態(tài)的數(shù)組,可以用arraylist或list取代
C#里沒(méi)有動(dòng)態(tài)的數(shù)組,只能用arraylist或list取代。2009-06-06
ASP.NET Core MVC解決控制器同名Action請(qǐng)求不明確的問(wèn)題
這篇文章主要介紹了ASP.NET Core MVC解決控制器同名Action請(qǐng)求不明確的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03

