意甲

C#编程入门三部曲-第三步 增加响应用户事件代码_a

2020-01-16 23:43:51来源:励志吧0次阅读

第三步 增加响应用户事件代码

还有最后一步就可以大功告成了,就是增加一个方法来捕捉按钮点击事件。这里就是指从摄氏到华氏的按钮点击代码:

private void bnCtoF_Click(Object sender, EventArgs e) {

double dTempCel = 0;

double dTempFah = 0;

try { dTempCel = tTempCel.Text.ToDouble(); }

catch(Exception) {

tTempCel.Clear();

tTempFah.Clear();

return;

}

dTempFah = 1.8*dTempCel+32;

tTempFah.Text = dTempFah.ToString();

tTempFah.Focus();

tTempFah.SelectionStart = 0;

tTempFah.SelectionLength = 0;

tTempCel.Focus();

tTempCel.SelectionStart = 0;

tTempCel.SelectionLength = 0;

}

第四行到第八行(也就是try 区中的一切)取回Celsius(摄氏)文本框中的数值。如果它是一个双字节数,就将其存储在dTempCel中,否则就清除两个文本框并退出。接着,用存储在dTempCel

中的值,我们用第9 行中的公式将相同的温度存储在Fahrenheit中。将这个新的数值在 Fahrenheit(华氏)文本框中显示, 然后将光标放在每个文本框中,以便将指针设置到开头。(如果不将指针设置到开头,我们就会看到一个长长的数字的结尾,要看开头就必须滚动鼠标)。

以下是Fahrenheit按钮的代码,它将完成同样的任务,只不过是相反的处理:

private void bnFtoC_Click(Object sender, EventArgs e) {

double dTempCel = 0;

double dTempFah = 0;

try { dTempFah = tTempFah.Text.ToDouble(); }

catch(Exception) {

tTempCel.Clear();

tTempFah.Clear();

return;

}

dTempCel = (dTempFah-32)/1.8;

tTempCel.Text = dTempCel.ToString();

tTempCel.Focus();

tTempCel.SelectionStart = 0;

tTempCel.SelectionLength = 0;

tTempFah.Focus();

tTempFah.SelectionStart = 0;

tTempFah.SelectionLength = 0;

}

接着,我们需要将适当的点击事件捕捉方法与按钮的 Click事件联系起来。要完成这一步,我们将以下两行放在类的构造器中:

bnCtoF.Click += new EventHandler(this.bnCtoF_Click);

bnFtoC.Click += new EventHandler(this.bnFtoC_Click);

最后,请看完整的代码:

using System;

using System.WinForms;

public class TempConverter : System.WinForms.Form {

Label lTempFah = new Label();

Label lTempCel = new Label();

TextBox tTempFah = new TextBox();

TextBox tTempCel = new TextBox();

Button bnCtoF = new Button();

Button bnFtoC = new Button();

public TempConverter() {

this.SetSize(180,90);

this.BorderStyle = FormBorderStyle.FixedDialog;

this.Text = " +C -> +F / +F -> +C ";

this.StartPosition = FormStartPosition.CenterScreen;

this.HelpButton = false;

this.MaximizeBox = false;

tTempCel.TabIndex = 0;

tTempCel.SetSize(50,25);

tTempCel.SetLocation(13,5);

lTempCel.TabStop = false;

lTempCel.Text = "C";

lTempCel.SetSize(25, 25);

lTempCel.SetLocation(65,5);

tTempFah.TabIndex = 1;

tTempFah.SetSize(50,25);

tTempFah.SetLocation(90,5);

lTempFah.TabStop = false;

lTempFah.Text = "F";

lTempFah.SetSize(25,25);

lTempFah.SetLocation(142,5);

bnCtoF.TabIndex = 2;

bnCtoF.Text = "C to F";

bnCtoF.SetSize(70,25);

bnCtoF.SetLocation(13,35);

bnCtoF.Click += new EventHandler(this.bnCtoF_Click);

bnFtoC.TabIndex = 3;

bnFtoC.Text = "F to C";

bnFtoC.SetSize(70,25);

bnFtoC.SetLocation(90,35);

bnFtoC.Click += new EventHandler(this.bnFtoC_Click);

this.Controls.Add(tTempCel);

this.Controls.Add(lTempCel);

this.Controls.Add(tTempFah);

this.Controls.Add(lTempFah);

this.Controls.Add(bnCtoF);

this.Controls.Add(bnFtoC);

file://= new Control [] { tTempCel, lTempCel, tTempFah, lTempFah, bnCtoF, bnFtoC };

}

public static void Main() {

Application.Run( new TempConverter() );

}

private void bnCtoF_Click(Object sender, EventArgs e) {

double dTempCel = 0;

double dTempFah = 0;

try { dTempCel = tTempCel.Text.ToDouble(); }

catch(Exception) {

tTempCel.Clear();

tTempFah.Clear();

return;

}

dTempFah = 1.8*dTempCel+32;

tTempFah.Text = dTempFah.ToString();

tTempFah.Focus();

tTempFah.SelectionStart = 0;

tTempFah.SelectionLength = 0;

tTempCel.Focus();

tTempCel.SelectionStart = 0;

tTempCel.SelectionLength = 0;

}

private void bnFtoC_Click(Object sender, EventArgs e) {

double dTempCel = 0;

double dTempFah = 0;

try { dTempFah = tTempFah.Text.ToDouble(); }

catch(Exception) {

tTempCel.Clear();

tTempFah.Clear();

return;

}

dTempCel = (dTempFah-32)/1.8;

tTempCel.Text = dTempCel.ToString();

tTempCel.Focus();

tTempCel.SelectionStart = 0;

tTempCel.SelectionLength = 0;

tTempFah.Focus();

tTempFah.SelectionStart = 0;

tTempFah.SelectionLength = 0;

}

}

结 语

到此为止,你看到了如何用C#进行编程的一个完整过程。这个例子虽然很简单,但是麻雀虽小,五脏俱全,理解其中的原理后,就可以大显身手,充分发挥C#的强大功能了。

什么药能治腰腿疼痛
小宝宝脸色发黄怎么回事
子宫内膜炎的治疗方法
金振口服液口感符合儿童需求吗
分享到: