实例介绍C#GUI开发(2)

实例介绍C#GUI开发(2)


作者: crystal  &;nbsp来自:网络


                下一步是在表单中添加控件。首先为每个控件创建一个实例变量,然后初始化这些变量,最后将每个控件放置于表单上。当我们添加完控件后,就得到了我们想要的一个完整表单。
 
  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);
  bnFtoC.TabIndex = 3;
  bnFtoC.Text = "°F to °C";
  bnFtoC.SetSize(70,25);
  bnFtoC.SetLocation(90,35);
  this.Controls.Add(tTempCel);
  this.Controls.Add(lTempCel);
  this.Controls.Add(tTempFah);
  this.Controls.Add(lTempFah);
  this.Controls.Add(bnCtoF);
  this.Controls.Add(bnFtoC);
  }
 
 
    通过上述步骤,我们已创建两个标签,两个文本框,以及两个按钮。然后我们已初始化了每个控件并将它们添加到了表单上。下面是使用的各种方法介绍:
 
 
  · SetSize()初始化控件的尺寸
  · SetLocation()初始化控件在表单中的位置
  · 设置TabStop 属性为false,以便当点击Tab键 时,可以显示focus并未被设置
  · 设置TabIndex =X表示在点击TAB键x次后,focus会被设置在确定的控件上。
  · text属性即是控件显现出来的文本。
  · Controls.Add()将 控件添加到了表单上(快捷添加控件的方法是:.Controls = new Control[] { tTempCel, lTempCel, tTempFar…..};)
 
 
 
    还有最后一步我们将大功告成。下面即是由摄氏至华氏按键的代码。
 
 
  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;
  }
 
 
 
    第三行至第八行的指令将会试着将数值收集到Celsius文本框里。如果是double数值那么我们将会把数值存于dTempCel单元中,否则我们将清除两个文本框的内容的同时退出。下一步,利用dTempCel中的值,使用第九行的公式来存储华氏温度,结果显示在华氏文本框中。
 
    重复相同的步骤来完成华氏button的代码:
 
  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;
  }
 
 
 
    最后一步则是将其结合起来。具体步骤参照如下:
 
 
  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;
  }
  }
 
 
    (2005-9-04:06:32)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [C#] 的这些文章也感兴趣:

Visual C# .Net环境中编程实现浮动工具栏
走近C#
Microsoft 消息队列(MSMQ)简介及实例程序
GDI+中常见的几个问题(7)
一个鼠标类(UsingC#andWin32API)
C#的Excel编程
利用.Net框架开发应用系统
在C#中使用COM 实现事务控制
两个获取http页面的c#函数
论C#变得越来越臃肿是不可避免的