《C#界面设计教程.ppt》由会员分享,可在线阅读,更多相关《C#界面设计教程.ppt(221页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2022-8-15C#程序设计实用教程2C#是一种可视化的程序设计语言。Windows窗体和控件是开发C#应用程序的基础,窗体和控件在C#程序设计中扮演着重要的角色。在C#中,每个Windows窗体和控件都是对象,都是类的实例。窗体是可视化程序设计的基础界面,是其他对象的载体和容器。控件是添加到窗体对象上的对象,每个控件都有自己的属性、方法和事件以完成特定的功能。Windows应用程序设计还体现了另外一种思维,即对事件的处理。2022-8-15C#程序设计实用教程3本章将介绍建立Windows应用程序、使用Windows Forms常用控件、菜单和多文档界面设计等。同时向大家展示用Window
2、s窗体来编写程序的特点以及技巧。2022-8-15C#程序设计实用教程4 9.1 Windows应用程序的结构VS.NET集成开发环境是基于.NET Framework构建的,该框架提供了一个有条理的、面向对象的、可扩展的类集,它使用户得以开发丰富的Windows应用程序。通过Windows“窗体设计器”进行设计窗体,用户就可以创建Windows应用程序和客户机/服务器应用程序。用户可对窗体设定某些特性并在其上添加控件,然后编写代码以增加控件和窗体的功能。2022-8-15C#程序设计实用教程5 9.1 Windows应用程序的结构VS.NET提供了很多工具可以使应用程序的开发快捷、可靠。这些
3、工具包括:Windows窗体可视化设计器。识别代码编辑器。集成的编译和调试。项目管理工具。2022-8-15C#程序设计实用教程6 9.1 Windows应用程序的结构典型的Windows应用程序通常包括窗体(Forms)、控件(Controls)和相应的事件(Events)。下面通过C#设计实现一个简单的计算器,要求能够实现基本的加、减、乘、除功能,并以这个“计算器”为例,来了解和掌握Windows应用程序的一般开发过程。2022-8-15C#程序设计实用教程79.1.1 计算器窗体Windows窗体就是创立Windows应用程序的框架。在VS.NET中创建Windows应用程序的第一步就是
4、建立这个框架。操作步骤如下:(1 1)运行VS.NET,在【起始页】上单击【新建项目】按钮,打开“新建项目”对话框,如图9-1所示。在“项目类型”列表框中指定项目的类型为“Viusal C#”,在“模板”列表框中选择“Windows应用程序”模板,在“名称”文本框中输入Calculator,在“位置”下拉列表中选定保存项目的位置。2022-8-15C#程序设计实用教程89.1.1 计算器窗体(2 2)单击“确定”按钮后就进入VS.NET的主界面,如图9-2所示。从图9-2可以看出,当选择“Windows应用程序”作为应用程序的模板后,系统会自动为用户生成一个空白窗体,一般名为Form1。该窗体
5、就是应用程序运行时显示给用户的操作界面,下一步就是向窗体中添加各种控件。2022-8-15C#程序设计实用教程99.1.2 计算器控件控件表示用户和程序之间的图形化连接控件表示用户和程序之间的图形化连接。控件可以提供或处理数据、接受用户输入、对事件做出响应或执行连接用户和应用程序的其他功能。因为控件本质上是具有图形接口的组件,所以它能通过组件所提供的功能并与用户交互。窗体中的控件有很多,“工具箱”中的“Windows窗体”里包含了所有Windows的标准控件,用户还可以根据需要自己定义控件。通过在“属性”窗口中改变控件的属性可以改变的外观和特性。2022-8-15C#程序设计实用教程109.1
6、.2 计算器控件本例中需要用到如下所列的控件:(1)按钮:16个。10个数字按钮分别用于表示09;4个运算符按钮表示“+”、“-”、“*”、“”;1个“计算”按钮用于实施计算操作;1个“清空”按钮用于清除上次计算结果。(2)标签:1个。 用于标示计算结果所在的文本框。(3)文本框:1个。 用于显示计算结果。2022-8-15C#程序设计实用教程119.1.2 计算器控件具体添加控件步骤如下:首先向窗体中添加按钮(Button)。具体操作为:在工具箱中单击Button,然后移动鼠标指针到窗体中的预定位置,按下左键拖动鼠标,划出一个方框,释放鼠标左键后,一个按钮就被添加到刚才方框的位置了。调整好大
7、小和位置后单击选中该按钮,在“属性”窗口中可以看到该控件名为Button1,将该按钮的Text属性设置为“1”。继续在窗体中添加其余15个按钮,并分别设置好它们的属性。2022-8-15C#程序设计实用教程129.1.2 计算器控件界面设计已经完成了,接下来的事情就是为各个控件添加相应的事件代码了。 按照同样的方法在窗体中添加一个标签(Label),设置其Text属性为“结果”,再添加一个文本框(TextBox),并设置其Text属性为空。 最后,一个简单的计算器的界面就完成了,如图9-3所示。2022-8-15C#程序设计实用教程139.1.3 计算器事件在C#中,基于Windows应用程序
8、设计方法是事件驱动的。事件驱动不是由程序的顺序来控制的,而是由事件的发生来控制的。事件驱动程序设计是围绕着消息的产生与处理而展开的,消息就是关于发生的事件的信息。Windows程序员的工作就是对所开发的应用程序所要发出或者接收的消息进行排序和管理。事件驱动程序方法提供了许多便利,对于那些需要大范围用户干预的应用程序来说,更是很有用处。2022-8-15C#程序设计实用教程149.1.3 计算器事件在“窗体设计器”中看到的是窗体及其中的控件,而要为控件添加事件处理程序就必须先切换到代码编辑器状态。切换到代码编辑器有以下几种方法:(1)双击窗体或者某控件。(2)在解决方案资源管理器中右键单击For
9、m1.cs,从快捷菜单中选择“查看代码”命令。如果选择“视图设计器”则可以回到“窗体设计器”中。(3)当第一次切换到代码编辑器之后,在窗体标题“Form1.cs设计”的左边会自动出现一个新的标题:Form1.cs,单击该标题就可以切换到代码编辑器。反之,如果单击“Form1.cs设计”则会切换到“窗体设计器”。2022-8-15C#程序设计实用教程159.1.3 计算器事件下面分析一下计算器中各个控件到底应该添加什么样的代码。对于计算器来说,当单击某个数字键后,结果显示区内应显示该键上的数字。因此,可以双击按钮“1”,切换到代码编辑器,此时光标就停留在该按钮所对应的代码处,输入下列代码:pri
10、vate void btn1_Click(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text += btn.Text;2022-8-15C#程序设计实用教程169.1.3 计算器事件继续给其他数字按钮添加同样的代码。然后给4个运算符按钮添加下列代码:private void btnAdd_Click(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text = textBox1.Text+ +btn.Text+ ;/空格用
11、于分隔数字各运算符2022-8-15C#程序设计实用教程179.1.3 计算器事件private void btnSub_Click(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text = textBox1.Text + + btn.Text + ;/空格用于分隔数字各运算符 private void btnMul_Click(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text = textBox1.Text + +
12、 btn.Text + ;/空格用于分隔数字各运算符 2022-8-15C#程序设计实用教程189.1.3 计算器事件 private void btnDiv_Click(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text = textBox1.Text + + btn.Text + ;/空格用于分隔数字各运算符 接下来给“清空”按钮添加如下代码:private void btnClear_Click(object sender, EventArgs e) textBox1.Text = ;2022-8-
13、15C#程序设计实用教程199.1.3 计算器事件最后给“计算”按钮添加下列代码:private void btnCalculate_Click(object sender, EventArgs e) Single r; /用于保存计算结果 string t = textBox1.Text;/t用于保存文本框中的算术表达式 int space = t.IndexOf( );/用于搜索空格位置 string s1 = t.Substring(0, space);/s1用于保存第一个运算数 char op = Convert.ToChar(t.Substring(space + 1, 1);/op
14、用于保存运算符 string s2 = t.Substring(space + 3);/s2用于保存第二个运算数 Single arg1 = Convert.ToSingle(s1);/将运算数从string转换为Single Single arg2 = Convert.ToSingle(s2); 2022-8-15C#程序设计实用教程209.1.3 计算器事件 switch (op) case +: r = arg1 + arg2; break; case -: r = arg1 - arg2; break; case *: r = arg1 * arg2; break; 2022-8-15
15、C#程序设计实用教程219.1.3 计算器事件 case /: if (arg2 = 0) throw new ApplicationException(); else r = arg1 / arg2; break; break; default: throw new ApplicationException(); 2022-8-15C#程序设计实用教程229.1.3 计算器事件 /将计算结果显示在文本框中 textBox1.Text = r.ToString();现在,所有的工作都完成了。在“调试”菜单中选择“启动”命令或者“开始执行(不调试)”命令运行该应用程序,计算器可以工作了。2022
16、-8-15C#程序设计实用教程23 9.2 Windows窗体通过“计算器”这个例子,已初步了解了Windows应用程序的结构。下面具体介绍Windows应用程序的设计和开发。一个应用程序除了需要实现应有的功能外,还必须具有良好的用户界面。在C#中,Windows应用程序的界面是以窗体(Form)为基础的,窗体是Windows应用程序的基本单位,用来向用户展示信息和接受用户的输入。窗体可以是标准窗口、多文档界面(MDI)窗口、对话框的显示界面。2022-8-15C#程序设计实用教程24 9.2 Windows窗体窗体就好像一个容器,其他界面元素都可以放置在窗体中。C#中以类Form来封装窗体,
17、一般来说,用户设计的窗体都是类Form的派生类,用户窗体中添加其他界面元素的操作实际上就是向派生类中添加私有成员。当新建一个Windows应用程序项目时,C#就会自动创建一个默认名为Form1的Windows窗体。2022-8-15C#程序设计实用教程25 9.2 Windows窗体Windows窗体由以下4部分组成:标题栏控制按钮边界窗口区2022-8-15C#程序设计实用教程269.2.1 Windows窗体的基本属性Windows窗体的属性可以决定窗体的外观和行为,其中常用的属性有:名称(Name)属性、标题(Text)属性、控制菜单属性和影响窗体外观的属性。1. 1. 窗体的名称属性(
18、窗体的名称属性(NameName)Name用于设置窗体的名称,该属性值作为窗体的标志,用于在程序中引用窗体。在初始新建一个Windows应用程序项目时,自动创建一个窗体,该窗体的名称被自动命名为Form1;添加第2个窗体时,其名称被自动命名为Form2,依次类推。通常而言,在设计Windows窗体时,可给其Name属性设置一个有实际含义的名字。2022-8-15C#程序设计实用教程279.2.1 Windows窗体的基本属性2. 2. 窗体的标题属性(窗体的标题属性(TextText)Text属性用于设置窗体标题栏显示的内容,它的值是一个字符串。通常,标题栏显示的内容应能概括地说明窗体的内容或
19、作用。例如,对于一个登录窗体,其栏题栏设置为“欢迎登录!”。2022-8-15C#程序设计实用教程289.2.1 Windows窗体的基本属性3. 3. 窗体的控制菜单属性窗体的控制菜单属性在C#应用程序中的Windows窗体,一般都显示控制菜单,以方便用户的操作。 (1) ControlBox(1) ControlBox属性属性:该属性用来设置窗体上是否有控制菜单。其默认值True,窗体上显示控制菜单。若将该属性设置为False,则窗体上不显示控制菜单,如图9-4所示。2022-8-15C#程序设计实用教程299.2.1 Windows窗体的基本属性(2) MaximizeBox(2) Ma
20、ximizeBox属性:属性:用于设置窗体上的最大化按钮。其默认值True,窗体上显示最大化按钮。若将该属性设置为False,则窗体上不显示最大化按钮。(3) MinimizeBox(3) MinimizeBox属性:属性:用于设置窗体上的最小化按钮。其默认值True,窗体上显示最小化按钮。若将该属性设置为False,则窗体上不显示最小化按钮。2022-8-15C#程序设计实用教程309.2.1 Windows窗体的基本属性4. 4. 设置窗体外观的属性设置窗体外观的属性(1) FormBorderStyle属性:用于控制窗体边界的类型。它有7个可选值,可选值说明如表9-1所示。2022-8-
21、15C#程序设计实用教程319.2.1 Windows窗体的基本属性(2) Size属性:用来设置窗体的大小。(3) Location属性:设置窗体在屏幕上的位置,即设置窗体左上角的坐标值。(4) BackColor属性:用于设置窗体的背景颜色,可以从弹出的调色板中选择。2022-8-15C#程序设计实用教程329.2.1 Windows窗体的基本属性(5) BackgroundImage属性:用于设置窗体的背景图像。(6) Opacity属性:该属性用来设置窗体的透明度。5. 5. 设置窗体可见性的属性设置窗体可见性的属性窗体的可见性由Visible属性来控制。2022-8-15C#程序设计
22、实用教程339.2.2 创建窗体通常,在开发项目时,一个窗体往往不能满足,通常需要用到多个窗体。C#提供了多窗体处理能力,在一个项目中可创建多个窗体,添加新窗体的方式如下:(1) (1) 选择项目菜单下的“添加Windows窗体”命令,打开“添加新项”对话框,如图9-5所示。2022-8-15C#程序设计实用教程349.2.2 创建窗体(2) (2) 在“添加新项”对话框的模板框内,选择“Windows窗体”模板,然后,单击“打开”按钮,就添加一个新的Windows窗体。完成添加窗体后,在解决方案资源管理器窗口中双击对应的窗体,则在Windows窗体设计器中,可显示该窗体。2022-8-15C
23、#程序设计实用教程359.2.3 设置启动窗体属性当在应用程序中添加了多个窗体后,默认情况下,应用程序中的第一个窗体被自动指定为启动窗体。在应用程序开始运行时,此窗体就会首先显示出来。如果想实现在应用程序启动时,显示别的窗体,那么就要设置启动窗体。如何实现设置启动窗体,请看例9-1。【例例9-19-1】C#设置启动窗体。步骤如下:(1)(1) 在一个项目中,添加两个窗体。2022-8-15C#程序设计实用教程369.2.3 设置启动窗体属性(2) (2) 在解决方案中,有一个Program.cs文件,双击此文件,此时该文件的代码如下所示:static class Program static
24、void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(); 2022-8-15C#程序设计实用教程379.2.3 设置启动窗体属性(3) (3) 要实现先启动Form2,只需在Program.cs文件中修改此行“Application.Run(new Form1();”代码为“Application.Run(new Form2();”,即可。(4) (4) 运行程序,先启动的窗体为Form2。202
25、2-8-15C#程序设计实用教程389.2.4窗体的显示与隐藏1. 1. 窗体的显示窗体的显示如果要在一个窗体中通过按钮打开另一个窗体,就必须通过调用Show()方法显示窗体。语法如下:public void Show();【例例9-29-2】 在Form1窗体中添加一个Button按钮,在按钮的Click事件中调用Show(),打开Form2窗体。代码如下:private void button1_Click(object sender, EventArgs e) Form2 frm2 = new Form2(); /实例化Form2 frm2.Show(); /调用Show方法显示Form
26、2窗体2022-8-15C#程序设计实用教程399.2.4窗体的显示与隐藏2. 2. 窗体的隐藏窗体的隐藏通过调用Hide()方法隐藏窗体。语法如下:public void Hide();【例9-3】 通过登录窗体登录系统,输入用户名和密码后,单击“登录”按钮,隐藏登录窗体,显示主窗体。关键代码如下:this.Hide(); /调用Hide方法隐藏当前窗体frmMain frm = new frmMain (); /实例化frmMainfrm.Show(); /调用Show方法显示frmMain窗体2022-8-15C#程序设计实用教程409.2.5窗体的事件Windows是事件驱动的操作系统
27、,对Form类的任何交互都是基于事件来实现的。Form类提供了大量的事件用于响应对窗体执行的各种操作。窗体设计人员往住关心窗体的加载和关闭,通常在加载时进行界面和数据的初始化。在关闭前进行资源的释放等清理操作,也可以取消关闭操作。下面详细介绍窗体的Click、Load和FormClosing事件。2022-8-15C#程序设计实用教程419.2.5窗体的事件1. Click1. Click(单击)事件(单击)事件当单击窗体时,将会触发窗体的Click事件。语法如下:public event EventHandler Click【例例9-49-4】 在窗体的Click事件中编写代码,实现当单击窗
28、体时,弹出提示框。代码如下:private void Form1_Click(object sender, EventArgs e) MessageBox.Show(已经单击了窗体!);/弹出提示框2022-8-15C#程序设计实用教程429.2.5窗体的事件程序的运行如图9-6所示。2022-8-15C#程序设计实用教程439.2.5窗体的事件2. Load2. Load(加载)事件(加载)事件当第一次直接或间接调用Form.Show方法来显示窗体时,窗体就会进行且只进行一次加载,并且在必需的加载操作完成后会引发Load事件。通常,在Load事件响应函数中执行一些初始化操作。语法如下:pub
29、lic event EventHandler Load2022-8-15C#程序设计实用教程449.2.5窗体的事件【例例9-59-5】在下述程序,在窗体的Load事件中对窗体的大小、标题、颜 色等属性进行了设置。private void Form1_Load(object sender, EventArgs e) this.Width = 1000; this.Height = 500; this.ForeColor = Color.Cyan; this.BackColor = Color.Red; this.Text = Welcome you!;2022-8-15C#程序设计实用教程45
30、9.2.5窗体的事件程序的运行如图9-7所示。2022-8-15C#程序设计实用教程469.2.5窗体的事件3. FormClosing3. FormClosing(关闭)事件(关闭)事件Form类的FormClosing事件是在窗体关闭时引发的事件,直接或间接调用Form.Close()方法都会引发事件。在FormClosing事件中,通常进行关闭前的确认和资源释放操作。语法如下:public event FormClosingEventHandler FormClosing【例例9-69-6】创建一个Windows应用程序,实现当关闭窗体之前,弹出提示框,询问是否关闭当前窗体,单击“是”按
31、钮,关闭窗体,代码如下。2022-8-15C#程序设计实用教程479.2.5窗体的事件private void Form1_FormClosing(object sender, FormClosingEventArgs e) DialogResult dr = MessageBox.Show(是否关闭窗体, 提示, MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (dr = DialogResult.Yes) /使用if语句判定是否单击“是”按钮 e.Cancel = false; /如果单击“是”按钮则关闭窗体 else e.Canc
32、el = true;/否则,不执行操作 2022-8-15C#程序设计实用教程489.2.5窗体的事件程序的运行如图9-8所示。2022-8-15C#程序设计实用教程49 9.3 窗体控件概述控件是包含在窗体上的对象,是构成用户界面的基本元素,也 是C#可视化编程的重要工具。使用控件可使程序的设计简化 避 免大量重复性工作,简化设计过程,有效地提高设计效率。对于一个程序开发人员而言,必须掌握每类控件的功能、用途,并掌握其常用的属性、事件和方法。2022-8-15C#程序设计实用教程50 9.3 窗体控件概述在VS2005中,工具箱中包含了建立应用程序的各种控件。工具箱分为Windows窗体、公
33、共控件、容器、菜单和工具栏、数据、组件、打印、对话框等部分,常用的Windows窗体控件放在“Windows窗体”选项卡下。工具箱中有数十个常用的Windows窗体控件,它们以图标的方式显示在工具箱中,其名称显示于图标的右侧。2022-8-15C#程序设计实用教程51 9.3 窗体控件概述在介绍具体控件之前,首先在此探讨一下各个控件共有的属性、事件和方法。在C#中,所有的窗体控件,比如标签控件、文本框控件、按钮控件等全部都是继承于:System.Windows.Forms.Control。作为各种窗体控件的基类,Control类实现了所有窗体交互控件的基本功能。Control类的属性、方法和事
34、件是所有窗体控件所公有的,而且其中很多是在编程中经常会遇到的。2022-8-15C#程序设计实用教程52 9.3 窗体控件概述(1 1)ControlControl类的属性类的属性Control类的属性描述了一个窗体控件的所有公共属性,可以在属性(Properties)窗口中查看或修改窗体控件的属性。常用的属性如下:lName属性每一个控件都有一个Name(名字)属性,在应用程序中,可通过此属性来引用这个控件。C#会给每个新添加的控件指定一个默认名。在应用程序设计中,可根据需要将控件的默认名字改成更有实际代表意义的名字。2022-8-15C#程序设计实用教程53 9.3 窗体控件概述lText
35、属性在C#中,每一个控件对象都有Text属性。Text属性在很多控件中都有重要的意义和作用。例如,在标签控件中显示的文字、在文本框中用户输入的文字、组合框和窗体中的标 题 等都是用控件的Text进行设定的。对于Text属性的设置过程及设置结果如图9-9、9-10所示。2022-8-15C#程序设计实用教程54 9.3 窗体控件概述lAnchor属性Anchor的意思是“锚”,那么Anchor属性是用来确定此控件与其容器控件的固定关系的。在此,所谓容器控件是指什么呢?顾名思义,容器控件就是像一般的容器一样可以存放别的控件的控件!例如,窗体控件中会包含很多的控件,像标签控件、文本框等。这时,称包含
36、控件的控件为容器控件或父控件,而里面的控件为子控件。显然,这必然涉及到一个问题,即子控件与父控件的位置关系问题。即当父控件的位置、大小变化时,子控件按照什么样的原则改变其位置、大小。Anchor属性就用于设置此原则。2022-8-15C#程序设计实用教程55 9.3 窗体控件概述对于Anchor属性,可以设定Top、Bottom、Right、Left中任意的几种,设置的方法非常直观,如图9-11所示。2022-8-15C#程序设计实用教程56 9.3 窗体控件概述图9-11中选中变黑的方位即为设定的控件方位,图中所示的方位为Top、Left、Bottom。此时,如果容器控件变化,子控件将保证其
37、上边缘与容器上边的距离、左边缘与容器左边的距离,底边与容器底边的距离。其运行效果如图9-12所示。2022-8-15C#程序设计实用教程57 9.3 窗体控件概述lDock属性Dock属性规定了子控件与父控件的边缘依赖关系。Dock的效果,如图9-13所示。 Dock的值有6种,分别是Top、Bottom、Left、Right、Fill,最后还有默认值None。一旦Dock值被设定,子控件就会发生变化与父控件选定的边缘相融在一起。2022-8-15C#程序设计实用教程58 9.3 窗体控件概述(2 2)ControlControl类的方法类的方法可以调用Control类的方法来获得控件的一些信
38、息,或者设置控件的属性值及行为状态。例如:Focus方法可设置此控件获得的焦点;Refresh方法可重画控件;Select方法可激活控件;Show方法可显示控件等。2022-8-15C#程序设计实用教程59 9.3 窗体控件概述(3 3)ControlControl类的事件类的事件在C#中,当用户进行某一项操作时,会引发某个事件的发生,此时就会调用事件处理程序代码,实现对程序的控制。事件驱动实现是基于窗体的消息传递和消息循环机制的。在C#中,所有的机制都被封装在控件之中,极大方便了编写事件的驱动程序。如果希望能够更加深入地操作,或定义自己的事件,就需要联合使用委托(Delegate)和事件(E
39、vent),可以灵活地添加、修改事件的响应,并自定义事件的处理方法。例如,Control类的可响应的事件有:单击时发生的Click事件;双击时发生的DoubleClick事件;取得焦点时发生的GetFocus事件;鼠标移动时发生的MouseMove事件等。2022-8-15C#程序设计实用教程60 9.4 常用控件窗体是由一个个控件构成的,因此熟悉控件是进行合理、有效的程序开发的重要前提。本节内容将针对Windows窗体应用程序中常见的控件进行详细介绍。2022-8-15C#程序设计实用教程619.4.1 按钮控件按钮(Button)是用户与应用程序交互的最常用的工具。它用于接收用户的操作信息
40、,去执行预先规定的命令,触发相应的事件过程,以实现指定的功能。1. 1. 常用属性常用属性(1 1)TextText属性属性该属性用于设定按钮上显示的文本。该属性也可为按钮创建快捷方式,其方法是在作为快捷键的字母前加一个“&”字符,则在程序运行时,命令按钮上该字母带有下划线,该字母就成为快捷键。例如,某个按钮的Text属性设置为“&Display”,程序运行时,就会显示为“Display”。2022-8-15C#程序设计实用教程629.4.1 按钮控件(2 2)FlatStyleFlatStyle属性属性该属性指定了按钮的外观风格,它有4个可选值。分别是:Flat、Popup、System、S
41、tandard。该属性的默认值为Standard。(3 3)ImageImage属性属性用于设定在按钮上显示的图形。(4 4)ImageAlignImageAlign属性属性当图片显示在命令按钮上时,可以通过ImageAlign属性调节其在按钮上的位置。(5 5)EnableEnable属性属性用于设定控件是否可用,不可用,则用灰色表示。(6 6)VisibleVisible属性属性用于设定控件是否可见,不可见,则隐藏。注意:注意:上述的属性中,前4项为外观属性;而后2项为行为属性。2022-8-15C#程序设计实用教程639.4.1 按钮控件2.2.响应的事件响应的事件如果按钮具有焦点,就可
42、以使用鼠标左键、Enter键或空格键触发该按钮的Click事件。当使用ShowDialog方法显示窗体时,可以使用按钮的DialogResult属性指定ShowDialog的返回值。【例例9-79-7】按钮控件的运用。(1 1)为窗体Form1添加一个计数器nCounter,并添加3个按钮控件,分别完成递增计数器、递减计数器、通过消息框提示计数器的值的功能,并添加1个Label控件来显示每次运算后的计数器值。完成的窗体界面如图9-14所示。2022-8-15C#程序设计实用教程649.4.1 按钮控件(2 2)设置窗体和各控件的属性,如表9-2所示。2022-8-15C#程序设计实用教程659
43、.4.1 按钮控件(3 3)切换到代码窗口,创建事件过程:private int nCounter;/第一次加载时,进行计数器和lblResult的初始化private void Form1_Load(object sender, EventArgs e) this.nCounter = 50; this.ShowCounter();/进行递增操作,并提示新值private void btnInc_Click(object sender, EventArgs e) this.nCounter+; this.ShowCounter();2022-8-15C#程序设计实用教程669.4.1 按钮控
44、件/进行递减操作,并提示新值private void btnDes_Click(object sender, EventArgs e) this.nCounter-; this.ShowCounter(); /通过MessageBox提示当前的值 private void btnMsg_Click(object sender, EventArgs e) string strMsg = 当前计数器 + this.nCounter.ToString(D8); MessageBox.Show(strMsg, 提示); 2022-8-15C#程序设计实用教程679.4.1 按钮控件/显示计数器值到La
45、bel控件lblResult private void ShowCounter() string strMsg = this.nCounter.ToString(D8); this.lblResult.Text = strMsg; 2022-8-15C#程序设计实用教程689.4.1 按钮控件程序运行结果如图9-15所示。2022-8-15C#程序设计实用教程699.4.2标签控件标签(Label)主要用来显示文本。通常用标签来为其他控件显示说明信息、窗体的提示信息,或者用来显示处理结果等信息。但是,标签显示的文本不能被直接编辑。除了显示文本外,标签还可使用Image属性显示图像,或使用Ima
46、geIndex和ImageList属性组合显示图像。2022-8-15C#程序设计实用教程709.4.2标签控件1. 1. 常用属性常用属性(1 1)TextText属性属性该属性用于设定标签显示的文本,可通过TextAlign属性设置文本的对齐方式。(2 2)BorderStyleBorderStyle属性属性该属性用于设定标签的边框形式,共有3个设定值,分别是None、FixedSingle、Fixed3D。该属性的默认值为None。(3 3)BackColorBackColor属性属性用于设定标签的背景色。(4 4)ForeColorForeColor属性属性用于设定标签中文本的颜色。(
47、5 5)FontFont属性属性用于设定标签中文本的字体、大小、粗体、斜体、删除线等。2022-8-15C#程序设计实用教程719.4.2标签控件(6 6)ImageImage属性属性用于设定标签的背景图片,可通过ImageAlign属性设置图片的对齐方式。(7 7)EnableEnable属性属性用于设定控件是否可用,不可用,则用灰色表示。(8 8)VisibleVisible属性属性用于设定控件是否可见,不可见,则隐藏。(9 9)AutoSizeAutoSize属性属性用于设定控件是否根据文本自动调整,设置为true表示自动调整。注意:注意:上述的属性中,前6项为外观属性;而后3项为行为属
48、性。2022-8-15C#程序设计实用教程729.4.2标签控件2.2.响应的事件响应的事件标签控件常用的事件有:Click事件和DoubleClick事件。2022-8-15C#程序设计实用教程739.4.2标签控件【例例9-39-3】标签控件的运用。对窗体上的3个标签控件的参数进行设置,用来显示文本。程序代码如下:private void Form1_Load(object sender, EventArgs e) /label1参数设置,默认字体为宋体9号、前景色为黑色 this.label1.AutoSize = true; this.label1.BackColor = System
49、.Drawing.Color.White; this.label1.Text = 宋体9号白底黑字; 2022-8-15C#程序设计实用教程749.4.2标签控件 /label2参数设置,默认字体为宋体9号、前景色为黑色 this.label2.AutoSize = true; this.label2.BackColor = System.Drawing.Color.Black; this.label2.Font=new System.Drawing.Font(宋体,10.5F, System.Drawing.FontStyle.Regular, System.Drawing.Graphics
50、Unit.Point,(byte)(134); this.label2.ForeColor=System.Drawing.Color.White; this.label2.Text = 宋体10号黑底白字“;2022-8-15C#程序设计实用教程759.4.2标签控件 /label3参数设置 this.label3.AutoSize = true; this.label3.BackColor = System.Drawing.Color.Blue; this.label3.Font = new System.Drawing.Font(楷体_GB2312, 14.25F, System.Draw