1.Windows窗体应用程序的各种组件
2.windows窗体控件的主要类别和功能
3.Windows窗体应用程序处理事件的方法
4.添加并配置Windows窗体和控件
5.创建时间处理程序并监视程序
6.在程序运行时向窗体添加控件和事件处理程序
1.创建简单Windows应用程序
之前创建的HelloWorld的窗口可以和我们平时使用的窗口做个对比,左上角有个标题栏,右上角是几乎所有程序都有的最小化,最大化,关闭按钮。此时来看解决方案管理器(solution explorer)。对比软件自动生成的几个文件:Assemblyinfo.cs,Resources.resx,Settings.settings,Form1.cs,Program.cs等等。
按照以前写代码的想法,一般程序都是从main开始执行的,打开Program.cs可以发现里面有个main函数,也就是说这个文件就是整个项目的入口,再打开Form1.cs文件。这个文件就是我们一开始写HelloWorld的地方,也就是说这是一个实现helloWorld的模块,在这个窗口中有个button,点击触发事件,实现一个消息弹出。此时如果我们要添加一个窗体
2.windows窗体控件的主要类别和功能
我们添加一个叫做Form2.cs的窗体,做工程的时候不要这个样命名。添加完毕会发现和一开始我们建立的Form1.cs窗体是一样的,同样的也有窗体属性,可以通过属性来确定这些窗体的各种功能,比如命名,或者窗体上的某个按钮要键盘才能点击,常见的窗体属性如下:
(Name) | 项目中窗体的名称(写代码时候用的类似android中所说的ID)通过这个id找到这个可视的窗口 | 默认命名就是上面偷懒时候自动命名出来的form1.cs form2.cs |
AcceptButton | 设置某个按钮,当用户按Enter键时才相当于单击此按钮 | |
CancelButton | 当用户按ESC的时候相当于单击此按钮 | |
ControlBox | 控制:最大化、最小化、帮助、关闭 | |
StrartPostion | 窗体第一次出现时候的位置 | |
FormBorderStyle | 控制窗体的外观 | |
MaximizeBox | 是否有最大化按钮 | |
MinimizeBos | 最小化 | |
Text | 显示在标题栏上的文本 |
向窗体添加控件
方法1 向窗体添加多个控件,然后调整其大小和位置:
(1)工具箱
(2)工具箱中双击要添加的控件
(3)添加之后可以调整位置
方法2 添加控件之后,立即调整其位置和大小
方法3 拖拽控件到窗口
方法1 2 3 主要是玩转这个工具箱的使用,鼠标点多看,以“Problem driven”的想法来看哪个顺手就用哪个。主要将工具箱玩的溜。
控件和组件的功能分类(具体要实现的时候去查表格,不必死记硬背):
文本编辑(编辑框,输账号密码,记账时候写数字)
文本编辑主要有TextBox,RichTextBox,MaskedTestBox。
文本显示(用户不能编辑,文本显示)
Label,LinkLabel,StatusStrip
从列表中选择
CheckListBox 显示一个可滚动的选项列表,每个选项带有一个复选框
ComboBox 显示下拉式列表
DomainUpDown 显示一个文本项列表
..
图形显示
PictureBox 在框架中显示图形文件,位图和图标
值设置
CheckBox 复选框和文本标签
RadioButton 可启用或禁用的按钮以及文本标签
TrackBar 用户沿着标尺移动滑块来设置值
内容显示
DataGridView 用户自定义的网格中显示数行和数列数据
WebBrower 使用户能够在窗体中浏览Web页面
ProcessBar 在水平条中显示相应比例的矩形来指示操作进度
日期设置
DateTimePicker 显示一个图形日历使得用户能够选择日期或者时间
MonthCalendar 显示一个图形日历使得用户能够选择日期范围
菜单控件
MenuStrip 显示按功能分组的应用程序命令和选项
ContexMenuStrip 当用户用鼠标右键单击关联控件时,显示相应的快捷菜单
命令
Button 提供选项以启动、停止、中断一个过程
NotifyIcon 在任务栏的状态通知区域显示一个图标
容器
Panel 将一组控件组合在一个不带标签的框架上,用户可在其中进行滚动操作
FlowLayout 在流布局中自动排列控件
GroupBox 将一组控件组合在一个带标签的控件上,用户可以进行滚动操作
...
3.Windows窗体应用程序处理事件的方法
事件处理:前面提到一个helloWorld的程序:点击按钮弹出消息框HelloWorld
此时转变为程序员写这个程序的想法:一个点击此按钮触发一个事件,调用某段代码实现某个功能。
在设计时创建事件处理程序
(1)默认事件处理程序:双击窗体或者控件来为此对象的默认事件创建事件处理程序。前面的button控件默认的事件就是click,而窗体,窗体就是load某个事件
(2)属性窗口:
在属性中找到事件,也就是说:有哪些动作触发哪些事件。
(3)代码编辑器窗口:直接在代码编辑器中创建事件处理程序,在C#应用程序中,通过手动方式将处理程序的代码写入窗口
在程序运行时创建事件处理程序
也就是添加代码:
button1.click + = new EventHandler(button1_click);
解读语法,对象button1调用click,点击时候是通过新的对象,在生成这个对象时实现button1_click
更多的事件处理技巧
(1)使用单个事件处理方法来处理多个事件。
(2)创建重写基类方法的事件处理方法。
关于类与对象的知识点:
控件基类: 控件都是从System.Windows.Forms.Control类继承而来的。通常意义上的控件都是一种组件(Component),这种组件结合了图形界面的特点和预先设计好的功能。其实控件就是用来完成特定任务的可重用代码单元。所有的控件都从Control基类继承而来,因此即使是不同的控件,也会具备一些相同的属性。
System.Object
System.MarshallByRefObject
System.ComponentModel.Component
System.Window.Forms.Control