C sharp 控件的使用.docx

上传人:b****7 文档编号:8663310 上传时间:2023-02-01 格式:DOCX 页数:44 大小:586.58KB
下载 相关 举报
C sharp 控件的使用.docx_第1页
第1页 / 共44页
C sharp 控件的使用.docx_第2页
第2页 / 共44页
C sharp 控件的使用.docx_第3页
第3页 / 共44页
C sharp 控件的使用.docx_第4页
第4页 / 共44页
C sharp 控件的使用.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

C sharp 控件的使用.docx

《C sharp 控件的使用.docx》由会员分享,可在线阅读,更多相关《C sharp 控件的使用.docx(44页珍藏版)》请在冰豆网上搜索。

C sharp 控件的使用.docx

Csharp控件的使用

控件的使用

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

属性

获取或设置控件的前景色

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 属性值更改时发生

以上是最常用的成员,便于查找,完整列表参考

静态文本控件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.1P.S.以后就用linkOption表示这个控件,在C#代码中控件实例实质上是一个变量,变量类型就是控件的类。

这就是这个控件的变量名。

由于默认的名称linkLabel1没有实际意义,编程时通常先修改其名字,使其好记。

由于是变量名所以命名规则与普通变量没有区别,由“_”或英文字母开头都是合法的,不允许重名。

但通常许多控件共同运作来完成一件具体的事,所以通常习惯在控件前面加上小写的类型简称,后跟首字母大写的名称。

这是一条基本技巧,以后不再重复介绍。

3双击linkOption编辑代码

privatevoidlinkOption_LinkClicked(objectsender,LinkLabelLinkClickedEventArgse)

{

linkOption.Text=linkOption.Text=="On"?

"Off":

"On";

}

4运行

5多次单击linkOption查看效果。

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

文本框TextBox:

表示Windows文本框控件。

文本框是提供用户数据输入输出的控件。

【例】:

求三角形面积

1编辑界面如图

2分别命名为txtA、txtB、txtC、txtArea

3直接开始编辑代码:

3.1新建函数

privatevoidtextBox_Change(objectsender,EventArgse)

{

doublea=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编辑界面如图

2设置其PasswordChar属性,输入一个字符

3运行

4输入一些文字看看效果

5设置为其他值看看:

如#、X、●、◆、★、■、§。

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

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

1编辑界面如图

2设置Dock属性为Top:

3运行

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

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

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

Enable=false的效果

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

将其设为true

效果:

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

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

WordWrap=true

WordWrap=false

这样的话显示不全,可更改ScrollBars属性,添加合适的滚动条

ScrollBars=Horizontal

ScrollBars=Vertical

ScrollBars=Both

按钮Button:

表示一个响应 ButtonBase.Click 事件的Windows按钮控件。

通常在鼠标对其操作(单击、双击等)时产生一些事件,并处理。

【例】:

可对上述示例加以修改:

1添加按钮如图

2按钮命名为btnCalc

3令btnCalc.Click=textbox_Change

4清空txtA、txtB、txtC的Click处理函数

5查看代码找到textbox_Change

6选中函数名

7右击

8鼠标指向“重构(R)”->“重命名(R)…”,并单击。

9改名为Calc_Click

10确定

11应用

12运行

13输入数并单击“Calculate”,查看效果

P.S.更改已经定义好的函数名、变量名等标识符的名称请使用“重构->重命名”,它将自动为所有的标识符引用改名以匹配新的名字。

这里的改名不是必要步骤(5-11步),但为了使实例更直观,避免混淆。

复选框CheckBox控件:

表示Windows CheckBox。

它经常用于选项,使用非常简单,只需设定Text(显示的文本),根据需要获取或设置Checked值就可以了,这个属性表示是否勾选,为bool型。

【例】闹钟选项设置

1编辑界面如图

2使复选框的名字依次为chkSun、chkMon、chkTue、chkWed、chkThu、chkFri、chkSat

3使按钮名字依次为btnApply、btnCancel

4添加新的CheckBox[]数组

privateCheckBox[]checkBoxes;

5修改WinForm构造函数:

publicForm1()

{

InitializeComponent();

checkBoxes=newCheckBox[]{

this.chkSun,

this.chkMon,

this.chkTue,

this.chkWed,

this.chkThu,

this.chkFri,

this.chkSat

};

}

6双击Apply编辑Click事件处理函数

privatevoidbtnApply_Click(objectsender,EventArgse){

stringstr="You'veselected:

";

foreach(CheckBoxcbincheckBoxes)if(cb.Checked)str+="\n\t"+cb.Text;

if(str=="You'veselected:

")str+="Nothing";

MessageBox.Show(str);

}

7双击Cancel编辑Click事件处理函数

privatevoidbtnCancel_Click(objectsender,EventArgse)

{

this.Close();

}

8修改WinForm属性

9运行查看效果

P.S.第8步设置了Winform的确定和取消按钮(即AcceptButton和CancelButton属性)可以看到按钮的视图效果会有所改变

Apply按钮多了个蓝框,表示默认按钮,此时按Enter或Esc分别相当于按下了这两个按钮。

这两个属性是专门为对话框按钮设置的简便方式。

这里建立了复选框的数组,用foreach语句遍历。

注意:

对象数组与数值数组有所不同,如果用已经定义的对象来初始化数组,那么元素与对应的对象完全相同(共用了一块内存区)任一一个的改动,会影响另一个的值。

数值数组则仅仅把数值传了过去。

两个对象的等于或不等运算是比较他们的内存地址是否相同,而不是每一个属性是否相同。

对对象的操作需要多加以考虑

复选框还有第三种“待定”的状态,以前叫三态复选框,三种状态是通过CheckState属性获得的:

效果

Checked属性

CheckState属性

True

Checked

True

Indeterminate

False

Unchecked

单选框RadioButton:

当与其他 RadioButton 控件成对出现时,使用户能够从一组选项中选择一个选项

单选框相对复选框较复杂一些,因为用户只能选一个,要把前一个选择的清除;如果有几组单选框,就更复杂。

这就需要一个范围来约束单选框的行为,如果只有一组,它可以正常工作,WinForm会自动清除前一个选项。

如果有多组,就需要容器控件来区分组别。

其中GroupBox是比较常用的。

如图:

这样不需要代码来控制其行为。

由于只有一个选项,所以一般用主动传值的方式。

【例】选择国籍

1编辑界面如图

2单选框无需改名,按钮命名为btnOK、btnCancel

3添加全程变量

privatestringstr="Nothing";

4创建新函数

privatevoidradio_Click(objectsender,EventArgse)

{

str=((RadioButton)sender).Text;

}

5编辑OK按钮Click事件:

privatevoidbtnOK_Click(objectsender,EventArgse)

{

MessageBox.Show("You'veselected:

"+str);

}

6编辑Cancel按钮Click事件:

privatevoidbtnCancel_Click(objectsender,EventArgse)

{

this.Close();

}

7选择全部的单选框

8编辑Click事件

9运行看看效果

数字框NumbericUpDown:

这是一种特殊的输入框,专门用来输入数字,通过Value属性获得其decimal型的值。

使数据的输入更加方便。

右侧有两个按钮可以让数字增加或减少。

【例】汇率换算

1编辑界面如图

2命名数字框为nudDollar和nudRMB

3命名按钮btnD2R、btnR2D

4编辑两个数字框的属性为如图

4.1属性栏下方有解释

所以属性的用途不再介绍。

5编辑btnD2R的Click事件

privatevoidbtnD2R_Click(objectsender,EventArgse)

{

nudRMB.Value=nudDollar.Value*(decimal)6.8352;

}

6编辑btnR2D的Click事件

privatevoidbtnR2D_Click(objectsender,EventArgse)

{

nudDollar.Value=nudRMB.Value/(decimal)6.8352;

}

7运行

下拉菜单ComboBox:

它可使用户从一定的范围内选择一项。

当有大量的选项时,单选框就不实用用了,这样做太复杂。

就应该使用下拉菜单。

但当只有少量选项时还是用单选框对于用户更容易操作。

下拉菜单是一个集合类,下面还是给出一个选国籍的程序

【例】选择国籍

1编辑界面如图

2下拉菜单改名comNation

3找到comNation.Items属性,单击右侧按钮

4输入数据(每一行作为下拉菜单的一个项,也就是集合的一个元素)

5确定

6双击下拉菜单进入comNation_SelectedIndexChanged函数的编辑

privatevoidcomNation_SelectedIndexChanged(objectsender,EventArgse)

{

MessageBox.Show("You'veselected:

"+comNation.SelectedItem.ToString());

}

7运行

可以看到用下拉菜单更加简便,几乎不用多少代码来管理控件行为,随时取值就行了。

然而下拉菜单还提供了大量的函数,可以动态的管理这些元素。

图像容器PictureBox:

PictureBox可以装点你的WInForm,也可以根据需要显示一些图片,让程序看起来跟动态化,互动效果更好。

使用PictureBox也十分容易,主要更改其Image属性,这属性属于Image类的。

一般需要从程序资源中调取图片,这个会在例子下加以介绍。

【例】显示图片

1拖拽出一个PictureBox控件

2右击控件

3单击选择图像

4从项目资源文件中导入图片

4.1单击项目资源文件单选框

4.2

4.3单击导入

4.4选择一张图片

4.5打开

4.6

4.7单击确定

5

6图像导入成功了,可以运行看看效果

 

这貌似是一个变量名的样子,与工程文件在同一个命名空间中。

其实可以找到他。

1在解决方案资源管理器中找到Properties展开

2打开Resources.resx(这就是资源文件),它内部是xml文件,与C#代码一起运作,这个机制就比较复杂了。

可以看到刚刚添加的图片就在里面

以后也可以通过这个界面来维护添加的资源,资源不仅可以是图片,也可以是声音,文字

【例】在WinForm初始化时通过代码装载图片

1拖拽出一个PictureBox

2按前面的例子向资源文件导入一张图片(此处添加了叫apple的图片)

3双击窗体进入窗体的Load事件编辑代码

privatevoidForm1_Load(objectsender,EventArgse){

pictureBox1.Image=Properties.Resources.apple;//根据实际添加图片资源名称

}

4运行看看效果吧

进度条ProgressBar:

掩码文本框MarkedTextBox:

进度条是一个使用起来十分简单的控件主要改变其Maximun、Minimun、Value属性来简单的调整外观视图。

掩码文本框则是通过掩码来确定用户输入特定格式的文字。

下面例子中同时用到两种控件来实现一个比较直观的定时器。

【例】定时器

1拖拽出一个掩码文本框、一个按钮和一个进度条

2修改名字为maskText、btnSet、progressBar

3

4选择时间格式

5确定——这时掩码文本框的外观已经改变:

6设置progressBar.Value属性为100,可看到进度条满格

7

8在拖拽一个工具箱->组件->

9改名timer

10设置Form的AcceptButton=btnSet

11添加全局变量

DateTimedt=newDateTime(),st=newDateTime();

12双击btnSet以编辑Click事件

privatevoidbtnSet_Click(objectsender,EventArgse)

{

switch(btnSet.Text)

{

case"Set":

try

{

dt=(DateTime)maskText.ValidateText();

st=DateTime.Now;

timer.Enabled=true;

maskText.ReadOnly=true;

btnSet.Text="Pause";

}

catch

{

progressBar.Value=100;

timer.Enabled=false;

dt=newDateTime();

st=newDateTime();

maskText.ReadOnly=false;

this.Text="Timer";

}

break;

case"Pause":

timer.Enabled=false;

maskText.ReadOnly=false;

btnSet.Text="Set";

break;

}

}

13

privatevoidtimer_Tick(objectsender,EventArgse)

{

if((dt-DateTime.Now).TotalMilliseconds>=200)

{

progressBar.Value=(int)(((dt-DateTime.Now).TotalMilliseconds/(dt-st).TotalMilliseconds)*100);

this.Text="SecondsLeft:

"+Math.Round((dt-DateTime.Now

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 图表模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1