WinForm程序设计基础篇Windows窗体(Form窗体,MDI窗体),Windows应用程序常用控件(文本类、选择类、分组类、菜单类等控件)。窗体和控件的基本属性和事件ADO.NET数据库访问技术ADO.NET简介,Connection,Command,DataReader,DataAdapter,DataSet应用篇项目(管理系统)WinForm程序设计窗体特点简单强大灵活方便一、窗体为什么使用窗体………WinForm程序设计什么是窗体?WinForm程序设计窗体的概念1在Windows中,窗体是向用户显示信息的可视图面,可用来向用户显示信息并接受用户的输入。3窗体可以是标准窗口、多文档界面(MDI)窗口、对话框或图形化例程的显示表面。2窗体是Windows应用程序的基本单元。WinForm程序设计WinForm简介System.Windows.Forms简单而强大改善了接口和基类IntelliSense新的管理数据提供程序安全丰富的图形灵活的控件向导WinForms应用程序可能存在多个窗体,用于获取用户输入的数据和向用户显示数据WinForm程序设计创建Windows程序“开始”“程序”“MicrosoftVisualStudio.NET2005”“MicrosoftVisualStudio.NET2005”设计窗口各种控件放置控件的区域属性WinForm程序设计WinForm程序设计解决方案资源管理器项目名称主程序文件,包含Main方法编写代码的文件解决方案名称窗体设计器代码文件,代码为VS自动生成staticclassProgram{///summary///应用程序的主入口点。////summary[STAThread]staticvoidMain(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newForm1());}}程序的主入口点WinForm程序设计Program.cs:Main方法WinForm程序设计构造函数做一些初始化的工作编译器自动调用//Form1.csnamespaceMyForm{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}}}冒号表示继承Form类定义了窗体的基本属性和行为我们创建的窗体都继承自Form类Form1具有相应的属性和行为WinForm程序设计Form1窗体设计器窗口窗体代码编辑窗口WinForm程序设计为什么使用partial具有双钥匙的密码箱第一把钥匙第二把钥匙为了安全,两把钥匙分开放置只有两把钥匙同时使用才能打开密码箱用partial将同一个窗体的代码分开放在两个文件中:一个存放VS自动生成的代码一个存放我们自己编写的代码WinForm程序设计怎么使用partial程序员编写的代码VS自动生成的代码//Form1.Designer.csnamespaceMyForm{partialclassForm1{//……privatevoidInitializeComponent(){//VS自动生成的代码this.ShowInTaskbar=false;this.Name=Form1;this.Text=Form1;this.TopMost=true;}}}运行时合到一起组成一个窗体文件//Form1.csnamespaceMyForm{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}//我们编写的代码}}WinForm程序设计Form1.csusingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceWindowsApplication3{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}}}提供了大量绘图工具的访问权限基础核心命名空间ArrayList、BitArray、Hashtable、Stack、StringCollection和StringTable类大量窗体和控件从System.Windows.Forms.Form派生VisualStudio.NET生成的代码partialclassForm1{///summary///必需的设计器变量。////summaryprivateSystem.ComponentModel.IContainercomponents=null;构造函数调用InitializeComponent()方法#regionWindows窗体设计器生成的代码///summary///设计器支持所需的方法-不要///使用代码编辑器修改此方法的内容。////summaryprivatevoidInitializeComponent(){this.SuspendLayout();////Form1//this.AutoScaleDimensions=newSystem.Drawing.SizeF(6F,12F);this.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font;this.ClientSize=newSystem.Drawing.Size(333,266);this.Name=Form1;this.Text=Form1;this.ResumeLayout(false);}#endregion项目的容器WinForm程序设计Form1.Designer.csWinForm程序设计///summary///清理所有正在使用的资源。////summary///paramname=disposing如果应释放托管资源,为true;否则为false。/paramprotectedoverridevoidDispose(booldisposing){if(disposing&&(components!=null)){components.Dispose();}base.Dispose(disposing);}释放系统资源WinForm程序设计Form1重要属性Name:窗体对象的名字,类似于变量的名字BackColor:窗体的背景色ShowInTaskBar:设置窗体是否出现在任务栏StartPosition:窗体第一次出现时的位置Text:窗体标题栏显示的文字TopMost:设置窗体是否为最顶端的窗体WindowState:窗体出现时最初的状态(正常、最大化、最小化)WinForm程序设计什么是事件显示开始菜单我的电脑窗口打开事件触发事件响应的结果单击双击事件是对象接受外部操作而发生的动作。WinForm程序设计事件驱动•Windows通过随时响应用户触发的事件做出相应的响应——事件驱动机制我们需要做的:针对我们感兴趣的事件,编写相应的事件处理程序•WinForms应用程序也是事件驱动的WinForm程序设计Form1主要事件Load:窗体加载事件MouseClick:鼠标单击事件MouseMove:鼠标移动事件KeyDown:键盘按下事件KeyUp:键盘释放事件FormClosing:窗体关闭事件MouseDoubleClick:鼠标双击单击事件WinForm程序设计例子//窗体的鼠标移动事件处理程序privatevoidForm1_MouseMove(objectsender,MouseEventArgse){this.Text=String.Format(捕捉到鼠标了!({0},{1}),e.X,e.Y);}this关键字代表窗体本身鼠标的横纵坐标窗体标题栏显示的文字鼠标事件参数事件源WinForm程序设计什么是方法方法是类能做的事情。Close():关闭窗体。Hide():对用户隐藏窗口(该窗口并没有被关闭,只是隐藏起来了)。Show():将隐藏的窗体显示出来。WinForm程序设计二、Winform控件GUI界面控件WinForm程序设计Winform控件可视化界面组件统称为控件System.Windows.Forms.ControlSystem.Windows.FormsControlButtonBaseButtonCheckBoxLabelListControlComboBoxListBoxTextBoxBaseTextBoxRadioButtonWinForm程序设计常用控件标签按钮组合框列表框文本框WinForm程序设计常用控件Label:标签lblTextBox:文本框txtListBox:列表框lstComboBox:组合框cboGroupBox:分组框grpPanel:面板pnlRadioButton:单选按钮rdoButton:按钮btnWinForm程序设计常用控件属性Name属性,用来设定控件的名称Text属性,用来设定控件显示的文本信息Visible属性,用来设定控件是否可见Enabled属性,用来设定控件是否可用WinForm程序设计控件常用方法Hide()方法Show()方法该方法对用户隐藏控件(该控件并没有被关闭,只是隐藏起来了)该方法将隐藏的控件显示出来WinForm程序设计标签Label•Windows窗体Label控件用于显示用户不能编辑的文本或图像。Label控件用来描述信息WinForm程序设计标签Label工具箱解决方案资源管理器属性窗口WinForm程序设计文本框TextBox•Windows窗体文本框用于获取用户输入或显示文本•TextBox控件通常用于可编辑文本,不过也可使其成为只读控件TextBox控件WinForm程序设计文本框TextBox属性说明MaxLength可在文本框中输入的最大字符数TextAlign设置如何对齐编辑控件的文本Multiline表示是否可在文本框中输入多行文本Passwordchar机密和敏感数据,密码输入字符ReadOnly文本框中的文本为只读Text检索在控件中输入的文本方法说明Clear删除文本框中的文字事件说明TextChanged文本框的内容发生改变时将发生该事件KeyPress用户按一个键结束时将发生该事件WinForm程序设计文本框TextBox•为文本框添加一个滚动条,其属性值分别–“none”(无滚动条,默认)–“Horizontal”(水平滚动条)–“Vertical”(纵向滚动条)–“both”(两种滚动条都有)设置属性注意:只有WordWrap属性为“false”时,水平滚动条才会显示ScrollBars属性WinForm程序设计按钮Button属性说明Enabled确定是否可以启用或禁用该控件Text设定按钮显示的文本信息事件说明Click单击按钮时将触发该事件允许用户通过单击来执行的操作,既可以显示,也可以显示图像WinForm程序设计WinForm程序设计消息框的使用•为什么使用消息框?–显示消息–向用户请求信息•怎样显示消息框?–使用MessageBox对象