第一次写博客,来分享一个简易计算器的代码。作为一名准程序员,就是要多写代码才能孰能生巧。重视基础知识才能飞的更快更高以及更稳。

代码可能会写的很糟糕,不完美不安全之处希望发现的越多越好

  c#编写计算器带窗口的,对于新手来说是如何建立窗体以及实现按钮的响应事件吧!那么,首先来探索下窗口是怎么实现的吧!


  步骤1:新建项目→C#windows窗体应用程序→新建解决方案


  此时你会发现有两个名称,一个是解决方案名称,一个是项目名称。对于小程序来说其实没什么区别。但对于大点的程序最好就要区别开了。解决方案就好比是一个大公司,项目名称就好比公司里的部门,不同的部门有不同的功能,然后组织起来,公司才能运营起来。在这里因为程序很小,就都设置为简易计算器吧。

  建完之后,大家可以看到如下界面

  建完项目之后,大家不妨到保存的文件夹里看看到底保存了什么吧

  bin文件夹:用来保存项目生成后程序集。bin\debug文件夹下有个.exe或.dll文件,此文件是最终生成的应用程序。(百度上还有更细的解释,其实笔者看完后也是一头雾水,相信以后会慢慢深入了解)

  obj文件夹:用来保存每个模块的编译结果。在.Net中,编译是分模块进行的。编译完成后会合并为一个.DLL或.EXE文件保存到bin目录下。每次编译采用的是增量编译,即只重新编译改变了的代码。obj保存每个文件编译的结果,用来加快代码的编译速度。是否采用增量编译,可以通过:项目属性-->配置属性-->高级-->增量编译来设置。

  Proprtties文件夹:用于存放一些和程序设置相关的内容,如Assembly版本信息、应用程序配置,等一般不需要手动编写。

  知道这些就不怕以后从文件夹打开文件不知道点哪个啦

  回到vs界面。我们看到一个空白的Form1.cs设计,这个可以让程序员直接拖控件设计界面。

  试着在旁边的工具箱随便托一个控件,再观察代码


  步骤2:试着拖了一个按钮


  打开Form1.Designer.cs和Form1的代码,看看里面怎么写吧

//Form1.Designer.cs代码如下
namespace 简易计算器
{
partial class Form1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null; /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
} #region Windows 窗体设计器生成的代码 /// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(, );
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(, );
this.button1.TabIndex = ;
this.button1.Text = "button1";
this.button1.UseVisualStyleBackColor = true;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(, );
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false); } #endregion private System.Windows.Forms.Button button1;
}
}
//Form1.cs代码如下
Form1.cs
namespace 简易计算器
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}

  可以看到class Form1是由partial修饰,这是分布类。再看看Form1.Designer.cs的代码,同样也是partial修饰的。原来Form1.Designer.cs的代码也是Form1类的一部分。(笔者就把它们当成写在一起的,总之什么字段函数属性都属于Form1类)

 (注意)partial不是关键字,所以在其他上下文,可以在程序中把它用作标识符号 。但是直接用在关键字class,struct或则interface之前,表示分部类型。Visio Studio为标准Windows程序模块使用了这个特性。如果你从标准模块创建ASP.NET项目、Windows Forms项目或则Windows Presentation Foudation(WPF)项目,模板为每一个Web页面、表单或WPF窗体创建两个类文件。我们在Form1设计里直接设计或则修改界面,代码会自动添加在Form1.Designer.cs里面。一般不应该修改里面的代码,因为如果修改页面组件的话,Visual Studio会重新编译生成这些代码,修改过的代码就会丢失掉了。


  步骤3:为按钮添加一个点击事件


  定义一个按钮被点击后要实现的函数Button_OnClick(),然后为按钮添加点击事件

namespace 简易计算器
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent(); button1.Click += new EventHandler(Button1_OnClick); //2.再添加事件响应
} private void Button1_OnClick(object sender,EventArgs args) //1.先写一个点击后的方法
{
Console.WriteLine("鼠标被点击啦");
}
}
}

  此时按F5编译打开程序,点击一下按钮,再关闭程序,在后台输出里可以看到

说明就成功了。

有了这些窗口知识,下面就可以来编写一个简易的计算器了

TIP:小白们编写窗体尽量不要依赖.net提供的窗口设计面板直接拖拉控件,而是把它当成一种学习便捷工具。自己尝试拖拉控件改变布局,改变控件属性,然后在自动生成的代码里学习是如何实现的,然后就可以为我所用来自己编写代码实现自己的界面了。

C#Windows Form简易计算器实现(上)的更多相关文章

  1. C#Windows Form简易计算器实现(中)

    昨天花了一天的时间弄计算器.也算是做出来了,还是简易的(怀疑猿生!!).在此先感谢昨天被我骚扰的朋友. 先贴一张界面看看 其实健壮性还是挺差的,用户体验也是极差的.比如说用户输入了不合理运算式子,我就 ...

  2. Windows Form简易计算器实现(下)

    陆陆续续更新这个计算器用了一个礼拜了,今天无论如何也要把它更完.笔者有点追求完美,再者每天都有课,晚上还有作业,还有每晚都会写一些其他的博文. 上一次漏了写如何实现计算的.思路如下: 之前得到一个栈2 ...

  3. Ninject之旅之十二:Ninject在Windows Form程序上的应用(附程序下载)

    摘要: 下面的几篇文章介绍如何使用Ninject创建不同类型的应用系统.包括: Windows Form应用系统 ASP.NET MVC应用系统 ASP.NET Web Form应用系统 尽管对于不同 ...

  4. 自制c#简易计算器

    这是一个课堂作业,我觉得作为一个简易的计算器不需要态度复杂的东西,可能还有一些bug,有空再慢慢加强. using System;using System.Collections.Generic;us ...

  5. JavaScript简易计算器

    JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标 ...

  6. php简易计算器

    php循环结构 案例:php简易计算器 步骤: 1.先绘制这个表格 2.根据表单提交的sub属性判断一下,是否点击计算了 (GET方式提交的数据,通过地址栏传递的) 3.计算,并将结果输入到第二行 问 ...

  7. 如何用Web技术开发Windows Form应用

    现在H5很热,很多互联网公司的产品都采用混合编程,其中各个平台客户端的“壳”为原生控件,但是内容很多都是Web网页,因此可以做出很多炫酷的效果.随着Node.js和Ionic等框架的出现,现在感觉Ja ...

  8. VS2008 Windows Form项目安装包生成详解

    2008 Windows Form项目的发布对有经验的程序员来说,可能不值一提,但对很多新手来说却不知道如何操作,因为在很多关于Visual Studio的书籍中也没有相关介绍,权威如<C# 2 ...

  9. 剖析简易计算器带你入门微信小程序开发

    写在前面,但是重点在后面 这是教程,也不是教程. 可以先看Demo的操作动图,看看是个什么玩意儿,GitHub地址(https://github.com/dunizb/wxapp-sCalc) 自从微 ...

随机推荐

  1. js关闭当前页面不弹出提示的方法

    js关闭当前页面不弹出提示的方法 js关闭当前页面不弹出提示的方法 "window.opener=null;window.open('','_self','');window.close() ...

  2. iOS UIWebView键盘操控

    +-------------------------+ 假设你有以下的问题,也许这篇文章将帮助你. 键盘遮盖了UIWebView. 怎样拖动UIWebView来移除键盘. 键盘出现时UIWebView ...

  3. HTML 速成

    html零基础者入. 记得学计算机网络的时候好像有学过一些HTML,但没运用起来都忘光了.近来想学学如何写网页.就从html(HyperText Markup Language超文本标记语言)入手了. ...

  4. Oracle笔试题库之问答题篇-总共60道

    1.把表A从表空间TSP1更改成表空间TSP2的方法 解答:alter table A move tablespace TSP2 2.删除表的列: 解答:alert table 表名 drop 列名 ...

  5. PHP中实现在数据库中的增、删、查、改

    其实要想在PHP中访问并获取到数据库中的数据其实并不难,下面我以例子为大家介绍: 首先,打开PHP软件和WampServer服务,确保在WampServer中的phpMyAdmin中有你要使用的数据表 ...

  6. C++ builder 中AnsiString的字符串转换方法大全

    C++ builder 中AnsiString的字符串转换方法大全 //Ansistring 转 charvoid __fastcall TForm1::Button1Click(TObject *S ...

  7. UTF8国际通用为什么还要用GBK?

    前序: 一直对编码很痴迷,让数据一目了然不好吗?为什么要去编码,这不是闲的没事,浪费生产力吗? 随着学习的深入,愈加觉得自己无知,世界语言千万种,在互联网的世界里如何表示他们?碰到汉字ASCii就显得 ...

  8. 使用Vim进行开发

    从士兵到程序员再到SOHO程序员 (二)   原文地址: http://blog.huhao.name/blog/2013/12/13/become-a-freelancer-2/ 作者:胡皓 Blo ...

  9. iOS Web开发激活css的active伪类

    最近在做一个资讯客户端,用到UIWebview展示一些网页内容,本来想做一个简单的按压效果,发现在css中设置active属性一直不管用. 查阅了一下资料,今天发现,要让css active伪类生效, ...

  10. Jquery轻量级幻灯插件-OWL Carousel--支持触屏的移动浏览器

    Jquery轻量级幻灯插件-OWL Carousel--支持触屏的移动浏览器 在项目中,需要做一个幻灯功能,领导说需要一个小清醒的啊,轻量级的.刚开始搜索到这个: CRAFTYSLIDE插件.但是用起 ...