C#控件介绍及用法(详细版) 联系客服

发布时间 : 星期六 文章C#控件介绍及用法(详细版)更新完毕开始阅读aedeb87b27284b73f24250fb

C#其实很好学,只要你弄清楚控件。 控件

控件是视窗交互的工具。控件是一种特殊的类,所有控件都继承自System.Windows.Forms.Control类。这里Control就叫做控件的基类,控件就是Control的派生类。一个类从基类继承,就拥有基类的所有成员(包括:变量(亦称字段),属性,函数(函数亦称方法),事件,运算符)。类之间通过继承关系保证了派生类拥有需要的方法或字段。所以Control的成员就是控件的通性。这里列出了Control的常用成员: 名称 类别 用途 Control 构造函数 用于初始化一个控件 释放由 Control 使用的所有资源 Dispose 方法 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 属性 获取或设置控件的高度 Height 属性 获取或设置该控件的左上角相对于其容器的左上角的Location 属性 坐标 获取或设置控件之间的空间 Margin 属性 MousePosition 静态属性 获取鼠标光标的位置(以屏幕坐标表示)。 获取或设置控件的名称 Name 属性 获取或设置控件的父容器 Parent 属性 获取或设置控件的高度和宽度 Size 属性 获取或设置包含有关控件的数据的对象 Tag 属性 获取或设置与此控件关联的文本 Text 属性 该值指示是否显示该控件 属性 获取或设置控件的宽度 Width 属性 当 BackColor 属性的值更改时发生 BackColorChanged 事件 当 BackgroundImage 属性的值更改时发生 BackgroundImageChanged 事件 在单击控件时发生 Click 事件 在双击控件时发生 DoubleClick 事件 在完成拖放操作时发生 DragDrop 事件 在控件接收焦点时发生 GotFocus 事件 在控件有焦点的情况下按下键时发生 KeyPress 事件 在 Location 属性值更改后发生 LocationChanged 事件 当控件失去焦点时发生 LostFocus 事件 在鼠标单击该控件时发生 MouseClick 事件 在鼠标指针进入控件时发生。 MouseEnter 事件 在鼠标指针停放在控件上时发生。 MouseHover 事件 在鼠标指针离开控件时发生。 MouseLeave 事件 在鼠标指针移到控件上时发生 MouseMove 事件 在鼠标指针在控件上并释放鼠标键时发生 MouseUp 事件 在移动鼠标滚轮并且控件有焦点时发生 MouseWheel 事件 在重绘控件时发生 Paint 事件 在调整控件大小时发生 Resize 事件 在 Text 属性值更改时发生 TextChanged 事件 以上是最常用的成员,便于查找,完整列表参考 http://msdn.microsoft.com/zh-cn/library/system.windows.forms.control_members.aspx

Visible 静态文本控件Label:

表示控件的文本标签,并提供对访问键的支持。

它是最简单的控件,用于显示文字,其实它不一定是静态的,显示的文字可以随时通过Text属性更改。常用的属性是Font、BackColor、ForeColor、Text、Location、Size、Visible。

超链接文本控件LinkLabel:

Windows 窗体 LinkLabel 控件使您能够向 Windows 窗体应用程序添加 Web 样式的链接。一切可以使用 Label 控件的地方都可以使用 LinkLabel 控件;还可以将文本的一部分设置为指向某个对象或网页的链接。

与Label类似,提供了类似超链接的文字样式,Label也可以设置Click事件,但LinkLabel更容易让人发现它被单击有不同的作用(由于它像超链接的样子)。也可以用作选项,【例】:

? ? 新建工程,设计界面如图:

修改LinkLabel控件名字:linkOption ? ? ?

选择

修改(Name)属性

改为linkOption ? P.S.以后就用linkOption表示这个控件,在C#代码中控件实例实质上是一个变量,变量类型就是控件的类。这就是这个控件的变量名。由于默认的名称linkLabel1没有实际意义,编程时通常先修改其名字,使其好记。由于是变量名所以命名规则与普通变量没有区别,由“_”或英文字母开头都是合法的,不允许重名。但通常许多控件共同运作来完成一件具体的事,所以通常习惯在控件前面加上小写的类型简称,后跟首字母大写的名称。这是一条基本技巧,以后不再重复介绍。

? 双击linkOption编辑代码 private void linkOption_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { linkOption.Text = linkOption.Text == \ ? \ : \; } ? 运行 ? 多次单击linkOption查看效果。

这里使用了条件运算符来实现这个功能。

文本框TextBox:

表示 Windows 文本框控件。

文本框是提供用户数据输入输出的控件。【例】:求三角形面积

? ? ?

编辑界面如图

分别命名为txtA、txtB、txtC、txtArea 直接开始编辑代码: ? 新建函数

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 : \); b = double.Parse(txtB.Text != \ ? txtB.Text : \); c = double.Parse(txtC.Text != \ ? txtC.Text : \); p = (a + b + c) / 2; txtArea.Text = Math.Sqrt(p * (p - a) * (p - b) * (p - c)).ToString(); } catch (FormatException) { txtArea.Text = \类型错误\; } } ? 设置txtA、txtB、txtC的Click事件处理函数为textBox_Change: ?

按住Ctrl分别单击txtA、txtB、txtC以同时选择这三个控件

? ? 查看事件列表

找到TextChange事件

? 选择textBox_Change ? 运行

? 输入一些数字查看运行情况。

还可以修改器PasswordChar属性使其变成密码框,这个属性的类型是char,只可以输入一个字符,用来代替原来显示文字的位置,令其为*或#看看效果吧:

? 编辑界面如图

? 设置其PasswordChar属性,输入一个字符 ? 运行

? 输入一些文字看看效果

? 设置为其他值看看:如#、X、●、◆、★、■、§。

P.S. 这只是表面的现象,不影响Text属性的取值,仍然用Text属性取出或写入字符串。

也可以修改其Dock属性为Top或Bottom,文本框会立即保持与窗口同宽:

? 编辑界面如图

? 设置Dock属性为Top: ? 运行

? 改变窗体大小查看效果。

P.S. 你可能觉得这与窗体贴的过分地紧了,最好留一点边距,这也有办法,只需修改窗体的Padding属性,改为8, 8, 8, 8试试。

文本框还有Enable、ReadOnly、Visible属性,分别表示是否禁用文本框(变灰)、是否只读(用户不能修改其内容)和是否可见(设为false就不显示)是一些常用属性,其他控件也有,以后不再重复介绍。

Enable=false的效果

还有一个是MultiLine属性,使文本框可以是多行的效果:

将其设为true

可以访问Lines属性修改其内容。

这时WordWrap属性还可指定它是否自动换行显示