控件的使用
P.S. 本章讲解常用控件的使用方法,将不对算法和语法加以解释。
控件
控件是视窗交互的工具。控件是一种特殊的类,所有控件都继承自System.Windows.Forms.Control类。这里Control就叫做控件的基类,控件就是Control的派生类。一个类从基类继承,就拥有基类的所有成员(包括:变量(亦称字段),属性,函数(函数亦称方法),事件,运算符)。类之间通过继承关系保证了派生类拥有需要的方法或字段。所以Control的成员就是控件的通性。这里列出了Control的常用成员:
名称 | 类别 | 用途 |
Control | 构造函数 | 用于初始化一个控件 |
Dispose | 方法 | 释放由 Control 使用的所有资源 |
Equals | 方法 | 判断控件是否相同 |
Focus | 方法 | 为控件设置输入焦点 |
GetContainerControl | 方法 | 返回容器控件 |
GetType | 方法 | 获取控件类型 |
RaiseDragEvent | 方法 | 引发适当的拖动事件。 |
RaiseKeyEvent | 方法 | 引发适当的键事件。 |
RaiseMouseEvent | 方法 | 引发适当的鼠标事件。 |
RaisePaintEvent | 方法 | 引发适当的绘画事件。 |
Refresh | 方法 | 强制重绘自己和任何子控件 |
ResetBackColor | 方法 | 将 背景重置为其默认值。 |
ResetCursor | 方法 | 重置光标 |
ResetFont | 方法 | 重置字体 |
ResetForeColor | 方法 | 重置前景 |
ResetImeMode | 方法 | 重置输入法 |
Select | 方法 | 激活控件 |
Show | 方法 | 向用户显示控件 |
ToString | 方法 | 控件类名转为字符串 |
Update | 方法 | 使控件重绘其无效区域 |
AllowDrop | 属性 | 指示控件是否接受拖放数据 |
BackColor | 属性 | 获取或设置控件的背景。 |
BackgroundImage | 属性 | 获取或设置在控件中显示的背景图像 |
CanFocus | 属性 | 获取一个值,该值指示控件是否可以接收焦点。 |
Controls | 属性 | 获取包含在控件内的控件的集合 |
Cursor | 属性 | 获取或设置当鼠标指针位于控件上时显示的光标 |
Dock | 属性 | 获取或设置哪些控件边框停靠到其父控件并确定控件如何随其父级一起调整大小。 |
DoubleBuffered | 属性 | 该值指示此控件是否应使用辅助缓冲区重绘其图面,以减少或避免闪烁 |
Enabled | 属性 | 该值指示控件是否可以对用户交互作出响应 |
Focused | 属性 | 该值指示控件是否有输入焦点 |
Font | 属性 | 获取或设置控件显示的文字的字体 |
ForeColor | 属性 | 获取或设置控件的前景 textbox控件边框设置 |
Height | 属性 | 获取或设置控件的高度 |
Location | 属性 | 获取或设置该控件的左上角相对于其容器的左上角的坐标 |
Margin | 属性 | 获取或设置控件之间的空间 |
MousePosition | 静态属性 | 获取鼠标光标的位置(以屏幕坐标表示)。 |
Name | 属性 | 获取或设置控件的名称 |
Parent | 属性 | 获取或设置控件的父容器 |
Size | 属性 | 获取或设置控件的高度和宽度 |
Tag | 属性 | 获取或设置包含有关控件的数据的对象 |
Text | 属性 | 获取或设置与此控件关联的文本 |
Visible | 属性 | 该值指示是否显示该控件 |
Width | 属性 | 获取或设置控件的宽度 |
BackColorChanged | 事件 | 当 BackColor 属性的值更改时发生 |
BackgroundImageChanged | 事件 | 当 BackgroundImage 属性的值更改时发生 |
Click | 事件 | 在单击控件时发生 |
DoubleClick | 事件 | 在双击控件时发生 |
DragDrop | 事件 | 在完成拖放操作时发生 |
GotFocus | 事件 | 在控件接收焦点时发生 |
KeyPress | 事件 | 在控件有焦点的情况下按下键时发生 |
LocationChanged | 事件 | 在 Location 属性值更改后发生 |
LostFocus | 事件 | 当控件失去焦点时发生 |
MouseClick | 事件 | 在鼠标单击该控件时发生 |
MouseEnter | 事件 | 在鼠标指针进入控件时发生。 |
MouseHover | 事件 | 在鼠标指针停放在控件上时发生。 |
MouseLeave | 事件 | 在鼠标指针离开控件时发生。 |
MouseMove | 事件 | 在鼠标指针移到控件上时发生 |
MouseUp | 事件 | 在鼠标指针在控件上并释放鼠标键时发生 |
MouseWheel | 事件 | 在移动鼠标滚轮并且控件有焦点时发生 |
Paint | 事件 | 在重绘控件时发生 |
Resize | 事件 | 在调整控件大小时发生 |
TextChanged | 事件 | 在 Text 属性值更改时发生 |
以上是最常用的成员,便于查,完整列表参考
msdn.microsoft/zh-cn/library/system.l_members.aspx
静态文本控件Label:
表示控件的文本标签,并提供对访问键的支持。
它是最简单的控件,用于显示文字,其实它不一定是静态的,显示的文字可以随时通过Text属性更改。常用的属性是Font、BackColor、ForeColor、Text、Location、Size、Visible。
超链接文本控件LinkLabel:
Windows 窗体 LinkLabel 控件使您能够向 Windows 窗体应用程序添加 Web 样式的链接。一切可以使用 Label 控件的地方都可以使用 LinkLabel 控件;还可以将文本的一部分设置为指向某个对象或网页的链接。
与Label类似,提供了类似超链接的文字样式,Label也可以设置Click事件,但LinkLabel更容易让人发现它被单击有不同的作用(由于它像超链接的样子)。也可以用作选项,【例】:
1 新建工程,设计界面如图:
2 修改LinkLabel控件名字:linkOption
2.1 选择
2.2 修改(Name)属性
2.3 改为linkOption
2.3.1 P.S.以后就用linkOption表示这个控件,在C#代码中控件实例实质上是一个变量,变量类型就是控件的类。这就是这个控件的变量名。由于默认的名称linkLabel1没有实际意义,编程时通常先修改其名字,使其好记。由于是变量名所以命名规则与普通变量没有区别,由“_”或英文字母开头都是合法的,不允许重名。但通常许多控件共同运作来完成一件具体的事,所以通常习惯在控件前面加上小写的类型简称,后跟首字母大写的名称。这是一条基本技巧,以后不再重复介绍。
3 双击linkOption编辑代码
private void linkOption_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { linkOption.Text = linkOption.Text == "On" ? "Off" : "On"; } |
4 运行
5 多次单击linkOption查看效果。
这里使用了条件运算符来实现这个功能。
文本框TextBox:
表示 Windows 文本框控件。
文本框是提供用户数据输入输出的控件。【例】:求三角形面积
1 编辑界面如图
2 分别命名为txtA、txtB、txtC、txtArea
3 直接开始编辑代码:
3.1 新建函数
private void textBox_Change(object sender, EventArgs e) { double a = 0, b = 0, c = 0, p = 0; try { a = double.Parse(txtA.Text != "" ? txtA.Text : "0"); b = double.Parse(txtB.Text != "" ? txtB.Text : "0"); c = double.Parse(txtC.Text != "" ? txtC.Text : "0"); p = (a + b + c) / 2; txtArea.Text = Math.Sqrt(p * (p - a) * (p - b) * (p - c)).ToString(); } catch (FormatException) { txtArea.Text = "类型错误"; } } |
4 设置txtA、txtB、txtC的Click事件处理函数为textBox_Change:
4.1 按住Ctrl分别单击txtA、txtB、txtC以同时选择这三个控件
4.2 查看事件列表
4.3 到TextChange事件
4.4 选择textBox_Change
5 运行
6 输入一些数字查看运行情况。
还可以修改器PasswordChar属性使其变成密码框,这个属性的类型是char,只可以输入一个字符,用来代替原来显示文字的位置,令其为*或#看看效果吧:
1 编辑界面如图
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论