博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#入门
阅读量:5099 次
发布时间:2019-06-13

本文共 5321 字,大约阅读时间需要 17 分钟。

C#Windows编程入门三部曲

第一步  创建一个表单 

1.认识Form 类: 表示组成应用程序的用户界面的窗口或对话框。    

        这非常简单,只需要创建一个从 System.Windows.Form 类中衍生出来的类,并对适当的属性进行初始化就可以。在我们的例子中,类定义是这样开始的:

                                      public class MyAdd : System.Windows.Form

                                         {  

                                                       . .   . 

                                         } 

      【请在MSDN中找到Form类:MSDN->目录->.NET开发-> .NET Framework SDK-> .NET Framework-> .NET Framework类库-System.Windows.Forms命名空间】  

请查找并回答:

1) 哪个属性表示窗体的高度,它的值是什么类型?

2) 哪个属性表示窗体的宽度,它的值是什么类型?

3) 哪个属性表示窗体标题栏显示的文本,它的值是什么类型?

4) 哪个属性表示窗体是否显示最大化按钮,它的值是什么类型?

5) 哪个属性可以改变窗体的透明度,它的值是什么类型?

6) 哪个属性可以改变窗体的背景颜色,它的值是什么类型?

7) 哪个属性可以代表 下面我们来看我们要解决的问题,以下是我们希望的主窗口: 

                                             

              

我们希望表单具备如下特征:

- 窗口大小为 360乘 180象素

- 不给用户改变窗口大小的能力

- 标题栏中显示的标题是 我的加法计算器

- 初始状态下表单显示在屏幕的中心

- 不想要帮助按钮(应用程序太简单,不需要帮助按钮)

- 不给用户提供将应用程序最大化的能力

(因为在给定的窗口尺寸内,一切都是可视的,因此不需要最大化)

      将表单初始化成给定的规格涉及到对MyAdd对象的某些属性进行设置。有些属性有改变值的方法,而其它属性则要通过更新适当的实例变量来直接修改。下面是有关代码。如果想要得到关于Form类的属性和方法的更多信息,那么 .NET Framework SDK 所提供的文档可以算是一个很好的参考资料。            

//以下代码指令设置窗体的属性

             this.Size = new Size(360, 180);   

          this.FormBorderStyle = FormBorderStyle.FixedDialog; 

            this.Text = "我的加法计算器";    

         this.StartPosition = FormStartPosition.CenterScreen;  

         this.HelpButton = false;     

        this.MaximizeBox = false;    

         this.Opacity = 0.95; 

现在把这些代码放在一起进行编译和运行,看看表单运行后是什么样子。这里要使用类定义,创建一个构造器(其中要包含以上的代码来初始化主窗口的外观),并且要创建一个主方法来创建类的一个例示。以下是完成这一工作的代码:

using System;

using System.Windows.Forms;

using System.Drawing;

namespace 项目1

{    

     class MyAdd :   System.Windows.Forms.Form    

      {       

                  public MyAdd ()      

               {        

                           //以下代码指令设置窗体的属性   

                   this.Size = new Size(360, 180);    

                   this.FormBorderStyle = FormBorderStyle.FixedDialog; 

                    this.Text = "我的加法计算器";

                    this.StartPosition = FormStartPosition.CenterScreen;

                     this.HelpButton = false; 

            this.MaximizeBox = false; this.Opacity = 0.95; 

        }  

   }

}

需要Main()函数才能使之运行,并添加代码:

namespace 项目1

{    

class Program    

{        

static void Main()       

  {            

System.Windows.Forms.Application.Run(new MyAdd ());      

   }   

  }

}   

   第二步    向表单中增加控件 

   接着的一步是向表单中增加控件。我们为每个控件创建一个实例变量,对这些新实例变量进行初始化,最后把每个控件都放在表单中。这里是增加了控件之后表单的样子,以及更新过的代码:

class MyAdd : System.Windows.Forms.Form    

{        

     TextBox textbox1 = new TextBox();    

     TextBox textbox2 = new TextBox(); 

      Label   labelAdd   = new Label();   

      Button  button = new Button();

      public MyAdd()        

{            

//以下代码指令设置窗体的属性    

         this.Size = new Size(360, 180);  

           this.FormBorderStyle = FormBorderStyle.FixedDialog;  

           this.Text = "我的加法计算器";  

           this.StartPosition = FormStartPosition.CenterScreen;   

          this.HelpButton = false;  

           this.MaximizeBox = false;   

          this.Opacity = 0.95; 

             //以下代码设置子控件的属性   

          textbox1.Location = new Point(50, 50); 

            textbox1.Size = new Size(80, 20);   

           labelAdd.Text = "+";    

         labelAdd.Location = new Point(135,50);  

           labelAdd.Size = new Size(20,20); 

             textbox2.Location = new Point(160, 50);

             textbox2.Size = new Size(80, 20);   

           button.Location = new Point(245,50);  

           button.Size = new Size(100,50);    

         button.Text = "计算"; 

             this.Controls.Add(textbox1);   

          this.Controls.Add(labelAdd);  

           this.Controls.Add(textbox2);

             this.Controls.Add(button);  

       } 

以上代码首先创建两个文本框(TextBox)、一个标签(Label)和一个按钮(Button),然后对每个控件进行初始化并将其加入表单中。具体的含义如下: 

- 控件的text 属性表示显示在其上的文字信息

- this.Controls.Add() 表示在表单上放置一个控件,要快速地添加每个控件,可以这么书写:

                 this.Controls = new Control[] { textbox1, labelAdd, textbox2, button }

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

【事件:向其他类或对象通知发生的相关事情,通常用于通知用户操作,例如,图形用户界面中的按钮单击或菜单选择操作。   

       事件处理程序是处理事件的方法。当引发事件时,执行事件处理程序内的代码。每个事件处理程序提供两个使您得以正确处理事件的参数。下面的示例演示 Button 控件的 Click 事件的事件处理程序。

        private void button1_Click(object sender, System.EventArgs e) 

{       

处理事件的代码 

}

        第一个参数 sender 提供对引发事件的对象的引用。上面示例中的第二个参数 e 传递特定于要处理的事件的对象。通过引用对象的属性(有时引用其方法)可获得一些信息,如鼠标事件中鼠标的位置或拖放事件中传输的数据。 】

   还有最后一步就可以大功告成了,就是增加一个方法来捕捉按钮点击事件。

private void bnFtoC_Click(Object sender, EventArgs e)        

{            

     try   

          {    

             float a = float.Parse(textbox1.Text);  

               float b = float.Parse(textbox2.Text); 

                 float sum = a + b; 

                 MessageBox.Show("结果是:" + sum);  

           }   

          catch(Exception ex) 

            {   

              MessageBox.Show(ex.Message); 

                 textbox1.Clear(); 

                textbox2.Clear(); 

                textbox1.Focus(); 

            }   

      } 

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

    button.Click += new EventHandler(bnFtoC_Click); 

最后,请看完整的代码:

using System;

using System.Windows.Forms;

using System.Drawing;

  namespace 项目1

{    

       class MyAdd : System.Windows.Forms.Form   

  {        

TextBox textbox1 = new TextBox();  

       TextBox textbox2 = new TextBox(); 

        Label   labelAdd   = new Label();  

       Button  button = new Button();  

         public MyAdd() 

        {  

           //以下代码指令设置窗体的属性  

           this.Size = new Size(360, 180);  

           this.FormBorderStyle = FormBorderStyle.FixedDialog; 

            this.Text = "我的加法计算器"; 

            this.StartPosition = FormStartPosition.CenterScreen; 

            this.HelpButton = false;

             this.MaximizeBox = false;  

           this.Opacity = 0.95;  

            //以下代码设置子控件的属性  

           textbox1.Location = new Point(50, 50); 

            textbox1.Size = new Size(80, 20); 

             labelAdd.Text = "+"; 

            labelAdd.Location = new Point(135,50); 

            labelAdd.Size = new Size(20,20); 

             textbox2.Location = new Point(160, 50);  

           textbox2.Size = new Size(80, 20);  

            button.Location = new Point(245,50);   

          button.Size = new Size(100,50);   

          button.Text = "计算"; 

             button.Click += new EventHandler(bnFtoC_Click);

              this.Controls.Add(textbox1); 

            this.Controls.Add(labelAdd);  

           this.Controls.Add(textbox2);

           this.Controls.Add(button); 

        }  

        private void bnFtoC_Click(Object sender, EventArgs e)  

       {           

                try  

           {    

             float a = float.Parse(textbox1.Text); 

                float b = float.Parse(textbox2.Text);  

               float sum = a + b;  

               MessageBox.Show("结果是:" + sum);

             }   

          catch(Exception ex)   

          {     

            MessageBox.Show(ex.Message); 

                textbox1.Clear();   

              textbox2.Clear();  

               textbox1.Focus();  

           }   

      } 

    }

  }  

namespace 项目1

{    

        class Program  

   {   

      static void Main()  

       {    

         System.Windows.Forms.Application.Run(new MyAdd());   

      }  

   }

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

 

 

 

转载于:https://www.cnblogs.com/lihuaxi2013/archive/2013/03/14/2960405.html

你可能感兴趣的文章
DM8168 DVRRDK软件框架研究
查看>>
django迁移数据库错误
查看>>
yii 跳转页面
查看>>
洛谷 1449——后缀表达式(线性数据结构)
查看>>
[最小割][Kruskal] Luogu P5039 最小生成树
查看>>
Data truncation: Out of range value for column 'Quality' at row 1
查看>>
Dirichlet分布深入理解
查看>>
(转)Android之发送短信的两种方式
查看>>
python第九天课程:遇到了金角大王
查看>>
字符串处理
查看>>
ECharts(Enterprise Charts 商业产品图表库)初识
查看>>
LeetCode Factorial Trailing Zeroes (阶乘后缀零)
查看>>
hdu 5402 Travelling Salesman Problem (技巧,未写完)
查看>>
[AIR] 获取U盘,打开U盘
查看>>
HtmlUnitDriver 网页内容动态抓取
查看>>
ad logon hour
查看>>
获得进程可执行文件的路径: GetModuleFileNameEx, GetProcessImageFileName, QueryFullProcessImageName...
查看>>
证件照(1寸2寸)拍摄处理知识汇总
查看>>
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>