C#程序设计.唐大仕.06.Windows窗体与控件
Windows 窗体与控件
1. 布局与事件处理
- 基本问题:界面的布局、事件的处理
界面布局
- 添加控件
1 | 控件.Controls.Add(...); |
- 设置位置
- 绝对布局
- Location——以像素为单位,设置控件的 X 坐标和 Y 坐标
- Size——以像素为单位,设置控件的宽度和高度
- 相对布局
- Anchor——把控件附着在窗体的一个或多个边框上
- Dock——把控件和窗体的一个或多个边框连接起来
- 绝对布局
- 示例
1 | this.btn1.Anchor = |
1 | this.btn2.Dock = |
事件
低级事件与高级事件
- KeyDown/KeyUp \(\to\) KeyPressed
- TextChange
事件及其注册
- 事件/委托/事件参数
1
2btn.Click+=new EventHandler(btn_Clicked);
void btn_Cliked(object sender, EventArgse ){...}- 使用匿名函数及Lambda表达式
示例
- FileExplorer.zip
- TreeView + Splitter + ListView
2. 常用控件
- 控件 Control 类
- Windows 中控件都是
System.Windows.Forms.Control
的子类 - 实现了
IDisposable
等接口
- Windows 中控件都是
- 控件与组件
- 控件:在界面中显示
- 组件:功能与界面相关,但是不在界面中显示
常用属性
外观
- Size(大小),Width(宽度),Height(高度)
- Location(位置),Left,Right,Top,Bottom
- Font(字体),ForeColor(前景色),BackColor(背景色)
状态
Visible(可见),Enabled(使能)
Text(文本),BackgroundImage(背景图片)
Tag(标记数据,类型为 object 任意类型)
常用事件
- KeyXXXX 键盘事件
- KeyDown、KeyUp、KeyPress
- MouseXXX 鼠标事件
- MouseDown、MouseUp、MouseMove、MouseEnter、MouseHover、MouseLeave
- Click/DoubleClick 事件
- GotFocus 事件
- TextChange 事件
常用控件
标签 Label
链接标签 LinkedLabel
文本框 TextBox
- PasswordChar 可使之成为密码框
- MultiLine 多行文本
- ScrollBars 滚动条
- ReadOnly 只读
按钮 Button
复选框 CheckBox
单选框 RadioButton
- Checked属性
- 容器,如 GroupBox
列表框 ListBox
- 复选列表框
- Xxxx.Items. Add(..)
组合框 ComboBox
数字框 NumbericUpDown
- Value属性
日期时间框 DateTimePicker
- Value属性
- Format 及 CustomFormat 属性 "yy-MM-dd"
掩码文本框 MaskedTextBox
- 满足一定条件的文本框
- Mask属性
进度条 ProgressBar
- Maximum(最大值)、Minimum(最小值)
- Step(步进值)
- Value(当前值)
PictureBox 图片框
- Image 属性
- SizeMode 属性:拉伸、重复
RichTextBox 富文本框
1
2
3.Select(start,len);
.SelectText="...";
.SelectionColor/Font;WebBrowser 网页浏览器
- 可以浏览网页、flash 文件、动画、多媒体等
1 | Navigate("http://www.dstang.com"); |
- TreeView、ListView
容器控件
- 流式布局面板 FlowLayoutPanel
- 成组框 GroupBox
- 面板 Panel
- 分隔容器 SplitContainer
- 选项卡 TabControl
- 表格布局面板 TableLayoutPanel
3. 窗体
- Form 类是 Control 类的子类
- 特殊的属性
- 边框、标题栏、启始位置、窗体是否最大化等
多窗体
- 打开与关闭
- Show()
- ShowDialog()
- 对话框
- 事件:closing、closed
- 可以设置参数 e.Cancel 取消关闭
- 交互信息
- Static 变量
- 通过构造函数或属性传递变量
4. 菜单、工具栏、对话框
- Windows 应用程序的菜单(Menu)控件分为三个种类
- MainMenu、ContextMenu、MenuItem
- 工具栏(ToolBar)可以说是工具栏按钮(ToolBarButton)的集合控件,它将常用的按钮以图标的形式集中表现
- 状态栏也是窗口应用程序中很重要的脚色。在状态栏上一般通知用户目前的时间、打开哪个文件等。
- 对话框
- OpenFileDialog
- SaveFileDialog
- FolderBrowserDialog
- ColorDialog
- FontDialog
- SDI 及 MDI 应用程序
- 单文档界面 (SDI)
- 多文档界面 (MDI)应用程序
- 示例代码
5. 用户控件
- 用户控件:多个控件组合
- 自动在工具箱中,可拖放到窗体上
- 处理 Paint
- 重载
- 对外公开属性、方法、事件
- 自定义控件示例
继承控件
- 继承
- 处理Paint
- 为控件添加设计支持
6. 类设计器
- VS 社区版没有类设计器的功能,需要自己安装
- 安装
- 工具 \(\to\) 获取工具和功能 \(\to\) vs installer \(\to\) 单个组件 \(\to\) 类设计器
- 使用
- 右键 \(\to\) 查看类图