




已阅读5页,还剩115页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第5章 常见窗体控件的使用,Visual C# 程序设计,2,本章中我们将主要介绍以下内容:windows窗体标签按钮文本框单选按钮复选按钮列表框组合框ToolTip控件PictureBox控件,3,利用C#编写GUI(Graphics User Interface)应用程序的一般步骤:(1)建立“Windows应用程序”项目(2)设计应用程序界面(3)设置窗口和控件的属性 (4)编写事件方法代码,GUI(Graphics User Interface),即图形用户界面,是指用图形的方式实现人与计算机之间的交互。,4,创建窗体可以有两种方法:一种是手动创建,即直接编写代码,一种是用项目模板来创建。无论怎样创建,都要用到.NET框架的System.Windows.Forms命名空间和System.Windows.Forms.Form类。,窗体的创建,5.1 Windows窗体,5,项目模板创建,“开始”“程序”“Microsoft Visual Studio.NET 2005”“Microsoft Visual Studio.NET 2005”,6,创建 WinForms应用程序,7,各种控件,属性,放置控件的区域设计窗口,8,窗体的属性:决定了窗体的外观。(1)Text:用来指定窗体的标题内容。(2)Size和StartPosition:用来指定窗体显示的大小和位置。(3)ForeColor:用来更改窗体内所有控件默认前景色。(4)FormBorderStyle:用来指定窗体的边框类型。(5)MinimizeBox和MaximinzeBox:指定窗体最小化、最大化按钮是否可用。,9,(6)WindowState:用来指定窗体运行时的状态。(7)Opacity:用来指定窗体的不透明度级别(0%100%)。(8)Icon:用来指定窗体的图标。(9)AcceptButton:窗体的“接受”按钮。如果设置了此按钮,则用户每次按enter键时,都相当于单击了该按钮。,10,窗体的常用方法:(1)Activate():激活窗体使其获得焦点。(2)BringToFront()和SendToBack():将某个窗体置于Z顺序的前面(或后面)。(3)Close():关闭窗体。(4)Contains():判断指定控件是否为窗体的子控件。(5)Hide():隐藏窗体。(6)Show()和ShowDialog():Show()和ShowDialog()都可以用来显示窗体。,11,模式对话框和非模式对话框 对话框可以分为模式对话框和非模式对话框两种。 模式对话框是指用户只能在当前的对话框窗体进行操作,在该窗体关闭之前不能切换到程序的其他窗体,通过窗体的ShowDialog()方法显示。 非模式对话框是指当前所操作的对话框窗体可以与程序的其他窗体切换,通过窗体的Show()方法显示。,12,GUI界面,可视化界面控件统称为控件,5. 2 WinForms中的常用控件,13,下面介绍的一些属性是多数控件都具有的属性,属性指控件具有的性质:(1)Name: 用来获取或设置控件的名称。名称是控件的标识。是给程序员看的,常在编程中使用。(2)Text: 用来获取或设置控件的标题文字,显示给用户看的。 (3)Location: 这是一个复合属性,表示控件的左上角相对于其容 器的左上角的坐标。,控件的基本属性,14,(4)Size: 这是一个复合属性,表示控件的高度和宽度。(5)Visible: 用来获取或设置控件是否可见。取值为true或false。(6)Enabled: 用来获取或设置控件是否对响应交互。取值为true或false。(7)ForeColor: 用来获取或设置控件的前景色。,15,(8)BackColor: 用来获取或设置控件的背景色。(9)Font: 用来获取或设置控件的字体,包括字体名称、字号以及是否以斜体、加粗和下划线显示。(10)Locked: 确定是否可以移动控件或者调整控件的大小。(11)TabIndex: 用来获取或设置控件的Tab键顺序。,16,(12)TextAlign: 用来确定文本对齐方式。(13)Cursor: 用来获取或设置鼠标移到控件上时,被显示的鼠标指针的类型。(14)Anchor: 获取或设置控件的哪些边缘锚定到其容器边缘。(15)Dock: 获取或设置控件停靠到父容器的哪一个边缘。,17,每个控件都有很多方法。方法指控件要完成的功能。方法是通过代码来调用的。例如:Focus方法(获得焦点)、Clear(清空)方法、ToString方法(转换为字符串)等。,控件的方法,18,1) MouseEnter事件:鼠标进入控件区域内时触发。 2) MouseDown事件:在控件区域内按下鼠标键时触发。 3) MouseLeave事件:鼠标离开控件区域时触发。,控件的常用事件,19,5.3 标签,标签(Label):用于显示用户不能编辑的文本或图象,起标注或说明作用。该控件不能获得焦点。,20,标签常用的属性、方法与事件,21,例:标签的显示与隐藏。,1、新建应用程序。 2、在界面上添加一个标签和两个按钮。 3、设置标签控件的text属性为“欢迎来到编程世界!”, button1的text属性修改为“隐藏”,button2的text属性修改为“显示”,enabled属性设置为false。 4、为button1的click事件填写代码为 label1.visible=false; button1.enabled=false; button2.enabled=true; 为button2的click事件填写代码为 label1.visible=true; button1.enabled=true; button2.enabled=false;,22,5.4 按钮,按钮(Button):提供用户与应用程序的交互,单击按钮来执行相应的操作。,23,按钮的常用属性、方法与事件,24,例:Click事件练习。private void button1_Click(object sender, System.EventArgs e) MessageBox.Show(你点击了确定按钮。, 提示信息,MessageBoxButtons.OK, MessageBoxIcon.Information);,25,例:MouseEnter事件练习。private void button1_MouseEnter(object sender, System.EventArgs e) /颜色在System.Drawing名称空间下button1.BackColor=Color.Red; ,26,例:MouseLeave事件练习。private void button1_MouseLeave(object sender, System.EventArgs e)button1.BackColor=SystemColors.Control;,27,5.5 文本框,文本框(TextBox):TextBox的主要作用是允许用户在应用程序中输入或编辑文本,当然也可以将控件的只读属性设为true,用做只显示文本。在TextBox中编辑的文本可以是单行的,也可以是多行的,还可以设置为密码字符屏蔽状态作为密码输入框。 Text属性是文本框最重要的属性,要显示的文本就包含在Text属性中。Text属性可以在设计时使用属性窗口设置,也可以在运行时用代码设置或者通过用户输入设置,同样也可以在运行时通过读取Text属性来获得文本框的当前内容。,28,29,30,1、TextBox控件的常用属性,wordwrap,31,例:设计一个登录窗口。登录窗口是很多应用系统中不可缺少的组成部分。通过验证用户输入的用户名和密码,决定是否允许用户进入系统,可在一定程度上保证系统的安全。,32,private void button1_Click(object sender, EventArgs e) if (textBox1.Text = abc) ,33,5.6 单选按钮控件,单选按钮(RadioButton):单选按钮(RadioButton)通常成组出现,用于为用户提供两个或多个互相排斥的选项。 单选按钮是以他们所在的容器划分组的,直接在Form上放置的单选按钮将自动成为一组,这时Form就是容器,当选中容器中的一个单选按钮时,其他的将自动撤销选中。,34,如果要在一个Form上创建多个单选按钮组,则需要使用Panel控件或者GroupBox控件作为容器。,Panel(面板)控件相当于一个容器,可以用来容纳其他控件。使用一个Panel容纳几个RadioButton,使用另一个Panel容纳另外一组RadioButton。如果移动Panel控件,则在控件內的其他控件也跟着移动。,35,首先在窗体上拖放一个GroupBox控件(组框),再把需要的RadioButton按钮放在组框的边界内,RadioButton按钮知道如何改变自己的状态,以反应组框中唯一被选中的选项。,36,1、RadioButton控件属性,(1)Appearance: 获取或设置确定单选按钮控件外观的值。(2)Text: 获取或设置与此控件关联的文本。(3)Checked: 获取或设置一个值,该值指示是否已选中控件。,37,2、RadioButton控件的主要事件,(1)CheckedChanged事件。 当 Checked 属性的值更改时发生。 (2)Click事件。 在单击控件时发生。,38,3、RadioButton控件的实例练习,39,private void radioButton1_CheckedChanged(object sender, System.EventArgs e)RadioButton check=(RadioButton)sender;if(check.Checked) textBox1.Text=check.Text; 将其余两个RadioButton控件的CheckedChanged触发事件均选择为radioButton1_CheckedChanged。运行,观察结果。,40,5.7 复选按钮控件,复选按钮( CheckBox ):复选框(CheckBox)指示某特定条件是打开的还是关闭的。 当用户希望选择一个或多个选项时,就需要使用复选框。多个CheckBox控件构成一组选项时,可以进行多重选择,相互之间不影响。,41,1、 CheckBox控件属性,(1)Text属性:表示与复选框控件关联的文本。 (2)Checked属性:表示复选框是否处于选中状态。,42,2、 CheckBox控件事件,43,例:一个关于RadioButton控件以及CheckBox控件的使用的简单例子。程序界面如下:,44,程序代码:,private void button1_Click(object sender, EventArgs e) string name; string sex; string course=; name = textBox1.Text; if (radioButton1.Checked) sex = radioButton1.Text; else sex = radioButton2.Text; if (checkBox1.Checked) course += checkBox1.Text+ ; if (checkBox2.Checked) course += checkBox2.Text + ; if (checkBox3.Checked) course += checkBox3.Text + ; textBox2.Text = 姓名: + name + rn + 性别: + sex + rn + 学过的课程: + course + rn; ,45,思考题:本例建立一个使用单选钮和复选钮的应用程序,界面上有一个文本框,两组单选钮和一组复选钮。两组单选钮分别用于设置文本框的字体和字号,一组复选钮用于设置文本框的字型。 程序界面如下:,46,private void radioButton1_Click(object sender, EventArgs e) textBox1.Font = new Font(宋体, textBox1.Font.Size, textBox1.Font.Style); private void radioButton2_Click(object sender, EventArgs e) textBox1.Font = new Font(隶书, textBox1.Font.Size, textBox1.Font.Style); private void radioButton3_Click(object sender, EventArgs e) textBox1.Font = new Font(华文行楷, textBox1.Font.Size, textBox1.Font.Style); ,47,private void radioButton4_Click(object sender, EventArgs e) textBox1.Font = new Font(textBox1.Font.FontFamily, 9, textBox1.Font.Style); private void radioButton5_Click(object sender, EventArgs e) textBox1.Font = new Font(textBox1.Font.FontFamily, 15.75f, textBox1.Font.Style); private void radioButton6_Click(object sender, EventArgs e) textBox1.Font = new Font(textBox1.Font.FontFamily, 26.25f, textBox1.Font.Style); ,48,private void checkBox1_CheckedChanged(object sender, EventArgs e) if (checkBox1.Checked) textBox1.Font = new Font(textBox1.Font, textBox1.Font.Style | FontStyle.Bold); else textBox1.Font = new Font(textBox1.Font, textBox1.Font.Style FontStyle.Bold); private void checkBox2_CheckedChanged(object sender, EventArgs e) if(checkBox2.Checked) textBox1.Font=new Font(textBox1.Font,textBox1.Font.Style|FontStyle.Italic);else textBox1.Font=new Font(textBox1.Font,textBox1.Font.StyleFontStyle.Italic); private void checkBox3_CheckedChanged(object sender, EventArgs e) if (checkBox3.Checked) textBox1.Font = new Font(textBox1.Font, textBox1.Font.Style | FontStyle.Underline); else textBox1.Font = new Font(textBox1.Font, textBox1.Font.Style FontStyle.Underline); ,49,5.8 列表框,列表框( ListBox ):列表框控件用来显示一组条目,以便让操作者从中选择一条或者多条,然后进行相应的处理。,50,1、列表框的主要属性(1)Items:(count属性) 获取或设置ListBox 的项。 (2)MultiColumn: 该值指示 ListBox 是否支持多列,默认值为false。(3)ColumnWidth: 获取或设置多列ListBox 中列的宽度。 (4)Sorted: 获取或设置一个值,该值指示 ListBox 中的项是否 按字母顺序排序,默认值为false。,51,(5)SelectionMode: 获取或设置在 ListBox 中选择项所用的方法。 None:不能选择任何条目。 One:每次只能选择一个条目。 MultiSimple:每次可以选择一个条目或者多个条目,每次单击对应条目即被选中,再次单击取消选中。 MultiExtended:每次可以选择一个条目或者多个条目,仅用鼠标单击各条目时,每次选择一个条目;使用组合键(如Shift或Ctrl)配合时,可以选择多个条目。,52,(6)SelectedIndex: 获取或设置ListBox中当前选定项的从零开始的索引。 (7)SelectedItem: 获取或设置ListBox中的当前选定项。 (8)SelectedItems:(count属性) 获取包含ListBox中当前选定项的集合。,53,2、列表的常用方法(1)Items.Add(): 向 ListBox 的项列表的末尾添加一项。 (2)Items.Clear(): 从集合中移除所有的项。(3)Items.Insert(): 将项插入列表框的指定索引处。 (4)Items.Remove(): 从集合中移除指定的对象。 (5)Items.RemoveAt(): 移除集合中指定索引处的项。,3、列表的常用事件 SelectedIndexChanged事件:当SelectedIndex属性值更改时触发的操作。,54,4、列表框的使用举例:,注意:listbox的SelectionMode属性设置为MultiExtended,55,/添加新的课程 private void button1_Click(object sender, EventArgs e) if (textBox1.Text = ) MessageBox.Show(没有输入所要添加的课程!); return; bool exit=false; for (int i = 0; i =0;i-) listBox1.Items.Remove(listBox1.SelectedItemsi); ,思考:将上述代码改为for(int i=0;i” private void button2_Click(object sender, EventArgs e) for (int i = 0; i listBox1.Items.Count; i+) if (listBox1.SelectedIndex = i) listBox2.Items.Add(listBox1.Itemsi); listBox1.Items.Remove(listBox1.Itemsi); ,59,/”-” private void button3_Click(object sender, EventArgs e) for (int i = 0; i ” private void button4_Click(object sender, EventArgs e) for(int i=0;ilistBox1.Items.Count;i+) listBox2.Items.Add(listBox1.Itemsi); listBox1.Items.Clear(); /” private void button5_Click(object sender, EventArgs e) for (int i = 0; i ”按钮单击事件 private void button1_Click(object sender, EventArgs e) bool exit=false; for (int i = 0; i listBox2.Items.Count; i+) if (listBox2.Itemsi.ToString() = listBox1.SelectedItem.ToString() MessageBox.Show(该产品已经选择); exit = true; break; if (exit = false) listBox2.Items.Add(listBox1.SelectedItem.ToString(); /“”按钮单击事件 private void button3_Click(object sender, EventArgs e) for (int i = 0; i listBox1.Items.Count; i+) bool exit = false; for(int j=0;jlistBox2.Items.Count;j+) if (listBox1.Itemsi.ToString() = listBox2.Itemsj.ToString() exit = true; break; if (exit = false) listBox2.Items.Add(listBox1.Itemsi.ToString(); /“”按钮单击事件 private void button3_Click(object sender, EventArgs e) for (int i = 0; i listBox1.Items.Count; i+) if (listBox2.Items.Contains(listBox1.Itemsi.ToString() continue; else listBox2.Items.Add(listBox1.Itemsi.ToString(); ,if (!listBox2.Items.Contains(listBox1.Itemsi.ToString() listBox2.Items.Add(listBox1.Itemsi.ToString();,/“确定”按钮单击事件 private void button5_Click(object sender, EventArgs e) string name = textBox1.Text; string phone = textBox2.Text; string comm = ; string payment = ; string acknowledgement = ; for (int i = 0; i listBox2.Items.Count; i+) comm +=listBox2.Itemsi.ToString() + ; if (radioButton1.Checked) payment = radioButton1.Text; else payment = radioButton2.Text; if (checkBox1.Checked) acknowledgement += checkBox1.Text + ; if (checkBox2.Checked) acknowledgement += checkBox2.Text + ; if (checkBox3.Checked) acknowledgement += checkBox3.Text + ; textBox3.Text = 姓名: + name + rn + 电话: + phone + rn + 已选择的商品: + comm + rn + 付款方式: + payment + rn + 确认方式: + acknowledgement; ,/“取消”按钮单击事件 private void button6_Click(object sender, EventArgs e) textBox1.Clear(); textBox2.Clear(); comboBox1.SelectedIndex = 0; listBox1.Items.Clear(); listBox2.Items.Clear(); checkBox1.Checked = false; checkBox2.Checked = false; checkBox3.Checked = false; textBox3.Clear(); ,75,5.10 ToolTip控件,ToolTip控件:即信息提示控件,其作用是当鼠标停留在某个与ToolTip控件建立关联的控件上一段时间后,自动显示该控件功能的提示信息。注意:ToolTip控件是用来为其他控件服务的,不能单独使用。,76,当向窗体中添加一个ToolTip控件后,该窗体中的其他控件,包括窗体本身,属性对话框中都将会出现一个新的属性“toolTip1上的ToolTip”,如图所示,修改该属性,即可使用一个ToolTip控件为窗体中的各个控件添加提示信息。,77,1、主要属性有:Active:指示该控件当前是否处于激活状态。Automat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论