之前一直在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

C# 窗体程序入门 之计算器的更多相关文章

  1. 【C/C++学院】0723-32位与64位/调戏窗体程序/数据分离算法/内存检索/二分查找法/myVC

    [送给在路上的程序猿] 对于一个开发人员而言,能够胜任系统中随意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并能够运用到系统中,由此简化系统的开发,是其架构生涯的第一步. ...

  2. 微信小程序 | 49,小程序入门集锦系列文章20篇

    以下20篇文章,都是关于微信小程序的文章,以入门常见问题为主.如发现谬误,请与笔者联系. [小程序入门集锦]1,微信小程序在哪里打开 [小程序入门集锦]2,小程序商店 [小程序入门集锦]3,微信小程序 ...

  3. 强力推荐微信小程序之简易计算器,很适合小白程序员

    原文链接:https://mp.weixin.qq.com/s/gYF7GjTRpeZNoKPAPI9aXA 1 概述 前几日QQ群里的朋友问我有没有计算器小程序案例,今天我们说下小程序计算器,然后就 ...

  4. 微信小程序入门-刘志敏-专题视频课程

    微信小程序入门-269人已学习 课程介绍        微信小程序入门基础,给入门级程序员好的教程.教程中对小程序的介绍到小程序的基本使用都做了详细的介绍,教程以实用的实现作为案例,如列表下拉刷新.抽 ...

  5. 天河微信小程序入门《四》:融会贯通,form表单提交数据库

    天河在阔别了十几天之后终于又回来了.其实这篇文章里的demo是接着(天河微信小程序入门<三>)后面就做了的,但是因为最近在做别的项目,所以就偷懒没有发出来.放到今天来看,从前台提交数据到数 ...

  6. 天河微信小程序入门《三》:打通任督二脉,前后台互通

    原文链接:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=505&extra=page%3D1 天河君在申请到https ...

  7. 天河微信小程序入门:阿里云tomcat免费配置https

    天河君在第一时间通过了微信小程序验证,开启了我的微信小程序之旅.因为天河君之前是一名后端狗,对前端不是很了解,所以几乎可以认为是从零开始学做微信小程序.也希望有志在微信小程序方向做点事情的朋友能够和我 ...

  8. 我的微信小程序入门踩坑之旅

    前言 更好的阅读体验请:我的微信小程序入门踩坑之旅 小程序出来也有一段日子了,刚出来时也留意了一下.不过赶上生病,加上公司里也有别的事,主要是自己犯懒,就一直没做.这星期一,赶紧趁着这股热乎劲,也不是 ...

  9. 微信小程序入门正确姿势(一)

    [未经作者本人同意,请勿以任何形式转载] >>>前言 这是 [认真学编程] 系列的 第4篇 文章(微信小程序入门系列),欢迎点赞分享.写留言,这些都是对我最好的支持. 本系列适合有一 ...

随机推荐

  1. Servlet 技术全总结 (已完成,不定期增加内容)

    Servlet是独立于平台和协议的服务器端的java应用程序,处理请求的信息并将其发送到客户端. Servlet的客户端可以提出请求并动态获得响应. Servlet动态生成web页面,担当浏览器或其他 ...

  2. 概率dp小结

    好久之前学过,记得是一次亚洲区的前几天看了看概率dp,然后亚洲区就出了一道概率dp,当时虽然做上了,但是感觉有很多地方没懂,今天起早温习了一下,觉得很多地方茅塞顿开,果然学习的话早上效果最好了. 首先 ...

  3. VC++深入详解读书笔记-第六章菜单

    1.MFC都是采用大写字母来标识资源ID号. 2.程序中会用到多种资源,在为资源确定其ID号时,为了明确区分资源类型,一般都遵循这样一个原则:在“ID”字符串后加上一个标识资源类型的字母,例如,我们给 ...

  4. (原)python中matplot中获得鼠标点击的位置及显示灰度图像

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6182474.html 参考网址: http://matplotlib.org/examples/pyl ...

  5. uva 10222 - Decode the Mad man

    #include <iostream> #include <string> #include <cctype> using namespace std; int m ...

  6. shell脚本实现查找文件夹下重复的文件,并提供删除功能

    Windows下有软件FindDupFile,可以搜索指定目录及其下子目录,列出所有内容完全相同的文件(文件名可能不同),然后由用户选择删除重复的文件. 然而shell脚本却可以使用几行的命令完成与此 ...

  7. Word隐藏回车符技巧

    每一次在Word中敲击回车时,都会留下一个回车符,回车次数多了回车符也就跟着变多了,这的确是太影响视觉效果了,我们要如何操作才能将这些回车符去掉呢?特意为大家献上Word2003和Word2007中隐 ...

  8. 练习使用css3实现3d按钮

    网上有很多漂亮的用css3实现的3d按钮,如'这个'.‘糖果色按钮’, 今天练习了一下,喏,下面这样,兼容性不好. 小黑子小虎子 3d效果和发光效果都是利用box-shadow,也经常利用伪元素:af ...

  9. 如何在项目中使用gtest1.6

    问题 gtest1.6版本的README里说该版本不支持make install,其意思就是说你没法通过make命令把gtest安装到/usr/local/lib之类的目录,所以你也没办法通过下面的命 ...

  10. hdu 畅通工程

    http://acm.hdu.edu.cn/showproblem.php?pid=1863 #include <cstdio> #include <cstring> #inc ...