设为首页 收藏本站
查看: 746|回复: 0

[经验分享] C#Windows Form简易计算器实现(上)

[复制链接]

尚未签到

发表于 2017-6-29 10:36:16 | 显示全部楼层 |阅读模式
  第一次写博客,来分享一个简易计算器的代码。作为一名准程序员,就是要多写代码才能孰能生巧。重视基础知识才能飞的更快更高以及更稳。
  代码可能会写的很糟糕,不完美不安全之处希望发现的越多越好
  c#编写计算器带窗口的,对于新手来说是如何建立窗体以及实现按钮的响应事件吧!那么,首先来探索下窗口是怎么实现的吧!

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

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

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

DSC0002.png

  bin文件夹:用来保存项目生成后程序集。bin\debug文件夹下有个.exe或.dll文件,此文件是最终生成的应用程序。(百度上还有更细的解释,其实笔者看完后也是一头雾水,相信以后会慢慢深入了解)
  obj文件夹:用来保存每个模块的编译结果。在.Net中,编译是分模块进行的。编译完成后会合并为一个.DLL或.EXE文件保存到bin目录下。每次编译采用的是增量编译,即只重新编译改变了的代码。obj保存每个文件编译的结果,用来加快代码的编译速度。是否采用增量编译,可以通过:项目属性-->配置属性-->高级-->增量编译来设置。
  Proprtties文件夹:用于存放一些和程序设置相关的内容,如Assembly版本信息、应用程序配置,等一般不需要手动编写。
  知道这些就不怕以后从文件夹打开文件不知道点哪个啦
  回到vs界面。我们看到一个空白的Form1.cs设计,这个可以让程序员直接拖控件设计界面。
  试着在旁边的工具箱随便托一个控件,再观察代码

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

DSC0003.png DSC0004.png

  打开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(79, 74);  
this.button1.Name = "button1";  
this.button1.Size = new System.Drawing.Size(75, 23);  
this.button1.TabIndex = 0;  
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(284, 262);  
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编译打开程序,点击一下按钮,再关闭程序,在后台输出里可以看到
DSC0005.png

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-389240-1-1.html 上篇帖子: Qt之Windows资源文件(.rc文件) 下篇帖子: Windows和Linux(Ubuntu)下安装Scala及ScalaIDE
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表