您的位置:首页 > 编程语言 > C#

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

2016-06-29 15:38 701 查看
之前一直在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: