• C# 窗体程序入门 之计算器


          之前一直在java的B/S,这次被要求做一个C/S,其中客户端主要是界面和socket通信。因为没有使用过C#和Visual Studio的控件编程,先来个HelloWorld.

    我的环境是visual studio 2010,其他版本例如2008,2012 都可以

    1.启动vs2010,新建->项目,得到下图:

    2. 选择visual c# ->windows->Windows 窗体应用程序

    3.选择项目路径(不一定跟我的一样),名称尽量能让自己和别人明白。

    4.窗体Form1 就是我们即将要编辑的位置

    5.目前只用到button,textbox 控件,所以选择工具箱里的Button并拖到Form1编辑框里,TextBox也一样。

    6.按钮布局如下图,顶上是TextBox控件,下面是20个button控件,还有一个链接控件,计划实现加减乘除,平方,开方,log, ln的功能

    7.如下图,单击其中一个button按钮,在右下方的属性里找到text并改名,其他的属性暂时不要动,以后可以慢慢改。

    8.修改后的Form1编辑框如下图左边所示。

    下面就是代码的编写了:

    9.双击Form1 窗体后,进入Form1.cs*界面(说白了是刚才窗体的代码编辑框,也是Form1窗体功能实现的界面)

    10.下图是初始程序,我们要做的是往里面加代码。

    完整代码:

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    namespace jisuangji

    {    

         public partial  class Form1 : Form   

      {   

                   double a = 0;     

                double b = 0;         

            bool c = false ;        

              string d;        

         public Form1()        

             {       

                    InitializeComponent();            

              }

              private void Form1_Load(object sender, EventArgs e)     

                 {

                  }

          

              private void button9_Click(object sender, EventArgs e)     // button9_Click是对应我的1键,如果单纯复制代码,但是跟我的窗体布局不同,一样会报错

               {                                // 算法没问题,只要单击相应的键,进入填入相应的算法即可

               if ( c ==true )        

                     {           

                     textBox1 .Text ="";            

                      c=false ;                 

                         }                    

                 textBox1.Text+="1";     

                }

              private void button10_Click(object sender, EventArgs e)    // button10_Click是对应我的2键

                  {           

                  if(c==true )            

                   {             

                        textBox1.Text="";          

                          c=false ;               

                          }           

                   textBox1.Text+="2";      

                }

             private void button11_Click(object sender, EventArgs e)        //对应我的3键

                 {       

                    if (c==true )       

                      {             

                        textBox1 .Text ="";           

                          c=false ;                 

                         }         

                    textBox1 .Text +="3";          

                   }

              private void button5_Click(object sender, EventArgs e)    //对应我的4键

                 {       

                    if(c==true )         

                    {           

                        textBox1.Text="";         

                          c=false ;              

                          }           

                  textBox1.Text+="4";     

                  }

            private void button6_Click(object sender, EventArgs e)       //对应我的5键

                {        

                     if(c==true )      

                        {              

                       textBox1.Text="";          

                          c=false ;           

                            }                

                  textBox1.Text+="5";      

                 }

              private void button7_Click(object sender, EventArgs e)    //对应我的6键

                 {       

                    if(c==true )          

                   {               

                    textBox1.Text="";   

                            c=false ;               

                          }          

                 textBox1.Text+="6";       

                }

              private void button1_Click(object sender, EventArgs e)  //对应我的7键

                   {       

                    if(c==true )        

                     {            

                       textBox1.Text="";        

                        c=false ;

                          }                   

                       textBox1.Text+="7";        

               }

            private void button2_Click(object sender, EventArgs e)   //对应我的8键

                  {            

                 if(c==true )        

                     {                

                    textBox1.Text="";          

                         c=false ;           

                          }        

                      textBox1.Text+="8";    

                  }

            private void button3_Click(object sender, EventArgs e)    //对应我的9键

                  {      

                     if(c==true )      

                       {               

                      textBox1.Text="";          

                         c=false ;           

                       }          

                    textBox1.Text+="9";    

                   }

              private void button13_Click(object sender, EventArgs e)   //对应我0的键,增加了除数不能为0的判断

                    {     

                      if(c==true )              

                      {               

                       textBox1.Text="";     

                              c=false ;

                            }         

                    textBox1.Text += "0";

                         if (d == "/")        

                           {           

                              textBox1.Clear();            

                               MessageBox.Show("除数不能为零", "错误提示", MessageBoxButtons.OK,   MessageBoxIcon.Warning);                              }          

                   }

              private void button4_Click(object sender, EventArgs e)   //对应我的+键

                    {                      

                    c = true;         

                     b = double.Parse(textBox1.Text);       

                      d = "+";       

                  }

              private void button8_Click(object sender, EventArgs e)   //对应我的-键

                    {     

                         c = true;       

                       b = double.Parse(textBox1.Text);    

                         d = "-";       

                  }

              private void button12_Click(object sender, EventArgs e)   //对应我的*键

                    {              

                        c = true;       

                       b = double.Parse(textBox1.Text);  

                           d = "*";    

                     }

              private void button16_Click(object sender, EventArgs e)    //对应我的/键

                   {        

                        c = true;      

                         b = double.Parse(textBox1.Text);     

                          d = "/";       

                  }

              private void button17_Click(object sender, EventArgs e)    //对应我的平方键

                   {        

                       c = true;        

                       b = double.Parse(textBox1.Text);     

                         d = "x2";  

                     }

              private void button18_Click(object sender, EventArgs e)    //对应我的开方键

                   {          

                     c = true;      

                        b = double.Parse(textBox1.Text);      

                        d = "sqrt";        

                }        

         private void button19_Click(object sender, EventArgs e)   //对应我的log键

                    {     

                          c = true;   

                            b = double.Parse(textBox1.Text);      

                           d = "log";      

                   }

             private void button20_Click(object sender, EventArgs e)      //对应我的ln键

                 {          

                       c = true;   

                            b = double.Parse(textBox1.Text);    

                            d = "ln";    

                   }

          

            private void button15_Click(object sender, EventArgs e)  //对应我的=键

                     {           

                      switch (d)         

                           {

                                   case "+": a = b + double.Parse(textBox1.Text); break;     

                                 case "-": a = b - double.Parse(textBox1.Text); break;    

                                   case "*": a = b * double.Parse(textBox1.Text); break;        

                                case "/": a = b / double.Parse(textBox1.Text); break;           

                              case "x2": a = b * double.Parse(textBox1.Text); break;      

                                  case "sqrt": a = Math.Sqrt(b ); break;               

                            case "log": a = Math.Log(double.Parse(textBox1.Text),b ); break;      

                                  case "ln": a = Math.Log(b, Math.E); break;

                                  }                    

                  textBox1.Text = a + "";               

                      c = true;   

                       }

            private void button14_Click(object sender, EventArgs e)    //对应我的c键,实现了清零的功能

                   {        

                       textBox1.Text = "";  

                     }

              /*     private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)    

                   {          

                   System.Diagnostics.Process.Start("http://home.cnblogs.com/u/linshuangxi/");       

                  }

           */                      

                //我注释掉是因为这是一个连接到我的博客的地址,首先需要在窗体拖进来一个LinkLabel控件。

                                     //  然后把注释去掉就可用了

      }    

    }

    11.点击运行界面,就会出来窗体,偷个懒,我把基本功能效果图和添加属性后的图都放在一起了,如下图:

    后言:

       1.尽量不要复制代码,自己动手,丰衣足食

       2.第一次设计的话,防止出错,保持窗体布局跟我的一样,这样复制代码就不会有问题

       3. 刚刚讲到按钮的属性设计,先把基本功能实现,然后可以在属性里设计文字大小,颜色,背景等

    属性设计后的效果图:

           参考:http://www.th7.cn/Program/net/201311/158591.shtml

  • 相关阅读:
    Navicat Premium 12连接Oracle时提示oracle library is not loaded的问题解决
    事务传播机制Propagation.REQUIRES_NEW
    @ApiImplicitParams、ApiImplicitParam的使用
    启动微服务项目的时候报redisInit错误---本地启动redis服务
    Swagger介绍及使用
    mybaitis框架-trim标签
    pgadmin怎样创建新的连接
    微服务项目启动
    管理中第一可怕之事(2) . 分类: 项目管理 2014-06-25 18:54 257人阅读 评论(0) 收藏
    管理中第一可怕之事(1) . 分类: 项目管理 2014-06-25 18:53 264人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/lls002-1435/p/5627089.html
Copyright © 2020-2023  润新知