您好,欢迎访问三七文档
张继思IT实训(C#)12010.10C#实训总结结合最近两这周来对C#的学习,感觉.NET是一个很好的开发工具,它几乎集成了微软所有的产品。在使用时很方便,关于界面开发方面:具有很大的优势,都是一些插件性的。比较容易开发,但是经过最近的学习感觉对.NET开发界面的熟悉很重要。当然了,闲暇之时多看一些关于别人设计的界面再去想一想是怎么实现的是一种很好的学习方法。如果说,把C#开发界面,拿到软件工程开发的方法来看,逐步求精是最好的学习方法。因为所有的任务都可以在一个应用程序开发中得到体现,从而也是的该应用程序更加完美!那下面我们进入正式的任务学习。任务一、认识.NET开发环境1、首先,先学会新建项目,建立C#应用程序或者控制台程序。在这里可以把该项目的路径设置为你自己想要的位置。2、学会使用工具栏,可以直接双击你想要的控件、插件什么的,就这样你可以完成你想要的显示界面。当然,在此过程中你需要使用属性窗口为你添加的控件设置相应的属性,这样能使你的界面显得更加生动形象。3、学会使用解决方案,主要的是添加新的窗体(也就是你想要的其它页面,这样通过设置,你可以跳转到这些界面)。当然了,你必须明白program.cs文件,这是工程代码文件,后缀名为cs(CSharp的缩写)。Form*.cs指的是窗体文件。4、学会区分主窗体,主窗体就是刚新建工程完,显现出来的那个窗体,也就是Form1窗体。5、学会使用消息,主要是为某些单击按钮事件,关闭窗口等等事件来提供一些提示性的必要说明。常见的比如:MessageBox.Show(“确定”,“提示”);解释:单击事件按钮,会弹出一个窗口。你看就明白,MessageBox.Show()的第一个参数是代表提示信息,第二个按钮代表弹出窗口的标题。6、学会代码编辑,那么怎样打开代码编辑视图呢。有两种方法:①选中需要添加代码的组件,在“视图”下面选择“代码”;②直接双击窗体或窗体中的组件。7、熟悉Program.cs代码,分析:在program.cs代码中,“Themainentrypointfortheapplication”成为类program的说明,如果为程序生成文档时,将会按照XML文档注释生成!8、在program.cs代码中第十二行,[STAThread]属性,使用Windows窗体的任何应用程序的入口都必须存在此属性,如果没有此属性,则Windows组件可能无法正常工作。9、application类Main方法由几行Application开头的代码组成,其中最重要的是最后一句,该行代码将启动“Form1”窗体,因此,正如结构体那样,运行程序后,显示的是“Form1”窗体。10、部分类在“Forml.cs”文件,第十一行,出线了类的定义,其中出现了一个partial关键字,该关键字表示该类定义只是Forml类的一部分,还有另外一部分在另外的文件中,编译时,VS2005将会自动处理这部分内容。11、C#程序采用命名空间来组织代码的,要访问某个命名空间中的类或者对象,必须用如下的语法:命名空间.类名在导入命名空间后,可以任意的直接使用该命名空间里面的类和对象。比如说,在张继思IT实训(C#)22010.10设计过程中会遇到很多控制变量,需要在其他窗口的代码中用到,这时候就需要使用这种方式调用,但是,该控制变量必须是public类型的。以上便是在学习任务一时的学习笔记以及总结。任务二、登陆界面在熟悉.NET基本组件(泛指.NET界面中的Label、Button等等之类的控件组件,以下简称组件)之后。开始按照自己的想法编写一个窗口界面。做一个.NET界面的基本步骤:第一步、首先建立项目,Windows应用程序。第二步、先把自己想要的界面,用一定的组件组织而成(例如:Label、Button等等)。第三步、为你的组件设置一定的属性(例如:Text)。第四步、为你的界面添加一些不同窗体之间的联系(例如:一些公用变量,用来控制)。第五步、逐步美化你的界面,包括:背景颜色,大小等等。在做完这五步时,你的界面已经很好了,但是,在考虑到现实生活中的实际应用状况,在此基础上你可以添加一些其它的新功能,这是一个逐步完善的过程。下面以教材(老师发的材料)为例设计界面:1、建立下面的登陆界面。图2_1⑴由该界面可以看出,由三个Label(EnterMyhome、用户名和用户密码)、两个TextBox(分别是用户名和用户密码的输入框)和四个按钮组成。当然这些提示性的话语全部是在该窗体的组件的属性(Text)中设置的。⑵在该窗体中有一个按钮“是否记住密码?”,这时考虑到用户的的方便性,说到这里,不得不说,在为“用户密码”后面的TextBox设置属性是,有一个,PasswordChar设置为“*”,这样在你输入密码是密码是不可见的。回到问题,记住密码的问题,现在还没有涉及到数据库,所以我使用了一个数组来记住密码。是这样来实现的,请看代码:privatevoidbutton3_Click(objectsender,EventArgse)//这是记住密码按钮单击事件{张继思IT实训(C#)32010.10if(index==0)//index当涉及到多用户时,记住不同的用户个数。{//记住密码!username[0]=this.textBox1.Text;//当前用户名textBox2.Paste(123);//在这个项目中,直接设置密码为“123”,也就是,只要用户名为zhang,则把密码设置为“123”}index++;if(index=1){for(inti=0;iindex;i++){//实现不同用户的密码记住功能。if(username[index]!=username[i]){username[index]=this.textBox1.Text;password[index]=this.textBox2.Text;}}}}⑶对于“注册新账号”按钮我还没有去实现,等到建立数据库之后再来写!⑷对于“Cancel”按钮的实现,这是问了关闭窗体,只需要双击该组件,在里面添加如下代码即可实现:This.Close();⑸一般来说,对于登陆来说使用次数限制的,在这里我使用了一个私有的静态的变量来控制。代码如下:privatevoidbutton1_Click(objectsender,EventArgse){i++;if(i4){if(textBox1.Text!=&&textBox2.Text!=){if((textBox1.Text==zhang)&&(textBox2.Text==123)/*||(textBox1.Text==username[1]&&textBox2.Text==password[1])*/){Form4frm4=newForm4();frm4.Show();}else{MessageBox.Show(输入的用户名称或者密码错误,提示);}张继思IT实训(C#)42010.10}else{MessageBox.Show(请输入完整的用户名称或者密码,提示);}}else{MessageBox.Show(警告:你的输入次数超过了3次!系统已经记录下你的IP地址!!!)Dns.GetHostName();//Dns为解析域名,获取本地计算机名stringstr_ServerIP=Dns.Resolve(Dns.GetHostName()).AddressList[0].ToString();//得到本地的IP地址MessageBox.Show(str_ServerIP)this.Close();}}2、现在已经有了登陆界面,那么登陆成功,我们该何去何从呢?请到下一页界面。在你看到这个界面,你知道是怎么实现界面之间的跳转码?很简单,在你单击的一个界面的“OK”按钮时,发生跳转,具体的是在“OK”按钮事件中添加了如下代码:From2frm2=newFrom2();//创建一个窗体Frm2..Show();//使创建的窗体显示当然了,第二个界面是在第一个页面之后添加的新界面。图2_2⑴先布局好如上图所示的界面,然后我们要实现商品单位选择,关于这个功能可以直接在属性中设置。当然了,这就变成一个静态的了。学到数据库后,用程序代码添加。现在我可以用数组来实现静态添加,代码如下:双击comboBox1,然后添加代码张继思IT实训(C#)52010.10try{//手工代码添加下拉菜单!if(comboBox1.SelectedIndex==0){comboBox1.Items.Clear();comboBox1.Items.Add(good1);comboBox1.Items.Add(good2);comboBox1.Items.Add(good3);}}catch{MessageBox.Show(出现异常!);}⑵看“商品数量”,众所周知,这必须为正整数。那么怎样来控制呢?我们看下面的代码:try{intmenmber=int.Parse(textBox1.Text);}catch{textBox1.Text=;}看到上面这段代码如此简单就实现了所要求的功能,那么,你知道我是怎么实现的吗(显然不如上面的代码段简单)?请看代码:stringgoodsnumber=textBox1.Text;if(goodsnumber!=){for(inti=0;igoodsnumber.Length;i++){if(goodsnumber[i]'0'||goodsnumber[i]'9'){MessageBox.Show(你输入的不是整数,请重新输入!);textBox1.Text=;MessageBox.Show(请重新输入!);}}}else{张继思IT实训(C#)62010.10MessageBox.Show(请输入数据!);}⑶下面来看“商品单价”,显然这可以是一个小数。问题来了,怎么判断这个输入的小数的合法性呢?请看我的一段超级“愚蠢”的代码:stringgoodsPrice=textBox2.Text;if(goodsPrice!=){if(goodsPrice[0]=='0')//查以0开头的,当然是小数了!{try{if(goodsPrice[1]=='.')//看第二位是不是‘.’,如果是,则后面不能再出现了!{//flag=true;for(intj=2;jgoodsPrice.Length;j++)if(goodsPrice[j]!='.'&&goodsPrice[j]='0'&&goodsPrice[j]='9'){}else{MessageBox.Show(输入错误!,错误);textBox2.Text=;}}else{MessageBox.Show(输入错误!,错误);textBox2.Text=;}}catch(Exceptionh){h.ToString();}}else{for(intj=0;jgoodsPrice.Length;j++){if(!(goodsPrice[j]='0'&&goodsPrice[j]='9'||goodsPrice[j]=='.')){MessageBox.Show(输入错误!,错误);textBox2.Text=;}else张继思IT实训(C#)72010.10{for(intk=0;kgoodsPrice.Length;k++){if(goodsPrice[k]=='.')//m=k;try{for(intm=k;mgoodsPrice.Length;m++)if(goodsPrice[m+1]!='.'){}else{MessageBox.Show(输入错误!,错误);textBox2.Text=;}}catch(Exceptionl){l.ToString();}}}}}}看完了吧,很长吧!这段代码确实实现了想要的功能,但是太长了,一点也不简洁。下面看上面这段代码的替换代码:decimalgoodPrice;try{good
本文标题:C#-实训
链接地址:https://www.777doc.com/doc-4693939 .html