版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C#程序设计教程,第08章 Windows窗体应用程序设计,2,本章重点,窗体设计 常用的控件设计 多文档窗体 窗体设计的事件机制,3,窗体设计,窗体(Form)是一个窗口或对话框,是存放各种控件(包括标签、文本框、命令按钮等)的容器,可用来向用户显示信息 创建Windows窗体应用程序的过程 添加一个窗体的操作步骤是 选择“项目”“添加Windows窗体”菜单命令,在出现的 “添加新项”对话框中,选中“Windows窗体”,输入相应的名称,单击“添加”按钮 一个Windows应用程序可以包含多个窗体,4,窗体类型,在C#中,窗体分为如下两种类型: 普通窗体,也称为单文档窗体(SDI),普通窗
2、体又分为如下两种 模式窗体。这类窗体在屏幕上显示后用户必须响应,只有在它关闭后才能操作其他窗体或程序 无模式窗体。这类窗体在屏幕上显示后用户可以不必响应,可以随意切换到其他窗体或程序进行操作。通常情况下,当建立新的窗体时,都默认设置为无模式窗体 MDI父窗体,即多文档窗体,其中可以放置普通子窗体,5,窗体的常用属性10-1,布局属性 Location 获取或设置窗体左上角在屏幕上的坐标 有X和Y两个值,默认值(0, 0) Size 获取或设置窗体大小 有Height和width两个值,6,窗体的常用属性10-2,StartPosition 获取或设置运行时窗体的起始位置 取值为如下之一 Man
3、ual 窗体的位置由Location属性确定 CenterScreen 窗体在当前屏幕中居中,其尺寸由Size属性指定 WindowsDefaultLocation 窗体在Windows默认位置,其尺寸由Size属性指定,默认值 WindowsDefaultBounds 窗体在Windows默认位置,大小也由Windows默认决定 CenterParent 窗体在其父窗体中居中,7,窗体的常用属性10-3,WindowState 获取或设置窗体的窗口状态 取值为如下之一 Normal 默认大小的窗口,默认值 Minimized 最小化的窗口 Maximized 最大化的窗口,8,窗体的常用属性
4、10-4,窗口样式属性 ControlBox 获取或设置一个值,该值指定窗体标题栏是否显示系统控件 Helpbutton 获取或设置一个值,该值指定窗体标题栏是否显示帮助按钮 Icon 获取或设置窗体标题栏中的图标,9,窗体的常用属性10-5,MaximizeBox 获取或设置一个值,该值指定窗体标题栏是否显示最大化按钮 MinimizeBox 获取或设置一个值,该值指定窗体标题栏是否显示最小化按钮 ShowIcon 获取或设置一个值,该值指定窗体标题栏是否显示图标,10,窗体的常用属性10-6,ShowInTaskbar 获取或设置一个值,该值指定是否在Windows任务栏中显示窗体 Top
5、Most 获取或设置一个值,该值指定该窗体是否应显示为最顶层窗体,11,窗体的常用属性10-7,外观样式属性 BackColor 获取或设置窗体的背景颜色 BackgroundImage 获取或设置窗体的背景图像 Cursor 获取或设置鼠标指针在窗体上时的显示效果 Text 获取或设置窗体标题栏中的标题文字,12,窗体的常用属性10-8,Font 获取或设置窗体上显示文字的字体样式 它包含如下7个值 Name:字体名称 Size:字体大小,单位由Unit指定 Unit:字体大小度量单位 Bold:是否为粗体 Italic:是否为斜体 Strikeout:是否有中划线 Underline:是否
6、有下划线,13,窗体的常用属性10-9,ForeColor 获取或设置窗体的前景颜色 FormBorderStyle 获取或设置窗体的边框样式 其取值为如下之一 None:无边框 FixedSingle:固定的单行边框 Fixed3D:固定的三维边框 FixedDialog:固定的对话框样式的粗边框 Sizable:可调大小的边框,默认值 FixedToolWindow:固定的工具窗口边框 SizableFixedToolWindow:可调大小的工具窗口边框,14,窗体的常用属性10-10,行为属性 AllowDrop 获取或设置一个值,该值指定该控件是否接受用户拖放到它上面的数据 Enabl
7、ed 指定是否启用该控件 ImeMode 获取或设置控件的输入法编辑器(IME)的模式,15,窗体的常用事件,在属性窗口中可以查看控件的事件,双击事件名称可以进入事件响应方法编辑状态 窗体的常用事件有 Activated 激活窗体时发生 FormClosed 关闭窗体后发生 FormClosing 关闭窗体时发生 Load 加载窗体时发生,16,窗体上各事件的引发顺序,当一个窗体启动时,执行事件过程的次序如下 本窗体上的Load事件过程 本窗体上的Activated事件过程 本窗体上的其他Form级事件过程 本窗体上包含对象的相应事件过程 一个窗体被卸载时,执行事件过程的次序如下 本窗体上的F
8、ormClosing事件过程 本窗体上的FormClosed事件过程,17,窗体的常用方法2-1,除了事件响应方法之外,窗体还有如下的一些常用方法 Activate 激活窗体并给予焦点 Close 关闭窗体 Focus 使窗体获得焦点,18,窗体的常用方法2-2,Hide 隐藏窗体 Show 按照无模式窗体样式显示窗体 ShowDialog 按照模式窗体样式显示窗体,19,窗体控件示例4-1,20,窗体控件示例4-2,整个程序主要包含以下几个cs源文件 程序主文件 Program.cs:包含主方法,自动生成 Form1的两个窗体设计文件 Form1.cs:事件响应方法及其他自定义方法,需要用户
9、编辑代码 Form1.Designer.cs:窗体及内部控件设计,自动生成 Form1_1的两个窗体设计文件(同上) Form1_2的两个窗体设计文件(同上),21,窗体控件示例4-3,Program.cs文件 : using System; using System.Collections.Generic; using System.Windows.Forms; namespace Proj8_1 static class Program / / 应用程序的主入口点。 / STAThread static void Main() Application.EnableVisualStyles(
10、); /启动可视样式 Application.SetCompatibleTextRenderingDefault(False); /设置控件显示文本的默认方式 Application.Run(new Form1(); /默认启动窗体为Form1,用户可以修改 ,22,窗体控件示例4-4,Form1.cs文件(斜体为用户编辑部分): using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Te
11、xt; using System.Windows.Forms; namespace Proj8_1 public partial class Form1 : Form /从Form类继承,采用分布类定义方式 public Form1() /Form1类构造函数 InitializeComponent(); /初始化方法,其代码在Form1.Designer.cs文件中 private void button1_Click(object sender, EventArgs e) Form myform = new Form1_1(); /定义Form1_1类对象 myform.ShowDialo
12、g(); /以模式窗体方式调用 private void button2_Click(object sender, EventArgs e) Form myform = new Form1_2(); /定义Form1_2类对象 myform.Show(); /以无模式窗体方式调用 ,23,焦点,焦点(Focus)是指当前处于活动状态的窗体或控件 只有具有焦点的控件才能接收用户的操作 获得焦点的方法 单击控件 调用控件的focus方法 按Tab键,涉及Tab键次序设置问题 Tab键次序由控件的TabIndex属性控制,第一个控件的TabIndex属性值为0,第一个控件的TabIndex属性值为1
13、,依次递增,24,控件概述,控件是包含在窗体上的对象,是构成用户界面的基本元素,也是C#可视化编程的重要工具 工具箱中包含了建立应用程序的各种控件,根据控件的不同用途分为若干个选项卡,可根据用途单击相应的选项卡,将其展开,选择需要的控件,25,控件共有属性,大多数控件共有的基本属性如下 Name属性 Text属性 尺寸大小(Size)属性 位置(Location)属性 字体属性(Font) 颜色属性(BackColor和ForeColor) 可见(Visible)属性 有效(Enabled)属性 Cursor属性,26,富文本框控件RichTextBox 3-1,提供类似Microsoft W
14、ord能够输入、显示或处理具有格式的文本 常用属性如下 SelectionFont SelectionColor SelectionLength SlectionStart Text,27,富文本框控件RichTextBox 3-2,常用事件如下 TextChanged 常用的方法如下 Find Clear,28,富文本框控件RichTextBox 3-3,LoadFile(文件名, 文件类型)及SaveFile 加载或保存rtf或txt文件,两个方法参数是相同的 其中文件类型取值如下 PlainText 用空格代替OLE对象的纯文本流 RichNoOleObjs 用空格代替OLE对象的丰富文
15、本格式(RTF)流,只用于SaveFile方法 RichText RTF格式流 TextOleObjs 包含OLE对象文本表示形式的纯文本流,只用于SaveFile方法 UnicodePlainText 用空格代替OLE对象的采用Unicode编码的纯文本流,29,富文本框控件示例,【例8.2】 设计一个窗体,说明富文本框的使用方法,创建Form2窗体,添加富文本框控件richtextBox1 private void Form2_Load(object sender, EventArgs e) richtextBox1.LoadFile(H:C#2005ch8file.RTF, Richte
16、xtBoxStreamType.RichText); 将本窗体设计为启动窗体,运行本项目,在富文本框RichtextBox1中显示H:C#2005ch8file.rtf文件的内容,30,分组框控件GroupBox,用于创建一个控件组 比如将几个单选按钮分成组 要在分组框中加入组成员,必须先创建一个分组框,再在它的内部创建其成员 如果在分组框外创建控件再移动到分组框内,该控件不能与分组框关联到一起 常用属性 Text:分组框的标题 Visible:是否显示 一般不使用事件和方法,31,面板控件Panel,用于组合控件,便于控制界面布局 常用属性 BoderStyle 设置边框样式,可取值如下之一
17、 None:无边框,默认值 FixedSingle:单线边框 Fixed3D:三维立体边框 AutoScroll 是否显示滚动条 一般不使用事件和方法,32,复选框控件CheckBox 2-1,属于选择类控件,用来设置需要或不需要某一选项功能 在运行时,如果用户用鼠标单击复选框左边的方框,方框中就会出现一个“”符号,表示已选取这个功能了 复选框的功能是独立的,如果在同一窗体上有多个复选框,用户可根据需要选取一个或几个,33,复选框控件CheckBox 2-2,常用属性如下 Appearance 控制复选框的外观,取值有Normal(普通类型,默认值)和Button(按钮类型) Checked
18、是否选中 常用事件Click 下面看一个例子,34,复选框控件示例,创建Form3窗体,设计界面如右图所示,添加一个分组框和一个命令按钮,分组框中放置四个复选框 private void button1_Click(object sender, EventArgs e) if (checkBox1.Checked ,消息框,35,消息框类MessageBox 5-1,通过MessageBox.Show方法可以显示一个预定义的对话框,用于向用户传递信息 该方法有三个参数 提示信息文本 标题栏文本 显示按钮类型的枚举值,36,消息框类MessageBox 5-2,显示按钮类型的枚举值取值如下 Me
19、ssageBoxButtons.AbortRetryIgnore 显示“中止”、“重试”和“忽略”按钮 MessageBoxButtons.OK 显示“确定”按钮 MessageBoxButtons.OKCancel 显示“确定”和“取消”按钮 MessageBoxButtons.RetryCancel 显示“重试”和“取消”按钮,37,消息框类MessageBox 5-3,MessageBoxButtons.YesNo 显示“是”和“否”按钮 MessageBoxButtons.YesNoCancel 显示“是”、“否”和“取消”按钮,38,消息框类MessageBox 5-4,Messag
20、eBox.Show方法的返回值为如下的DialogResult枚举值 Abort:按下中止按钮 Cancel:按下取消按钮 Ignore:按下忽略按钮 No:按下否按钮 None:有其他模式对话框正在运行 OK:按下确定按钮,39,消息框类MessageBox 5-5,Retry:按下重试按钮 Yes:按下是按钮,40,单选按钮控件RadioButton,单选按钮是多选一,只能从多个选项中选择一个,各选项间的关系是互斥的 单选按钮使用时经常将多个单选按钮放在一个分组框中构成一个选项组 单选按钮的属性和事件和复选框相同 下面看一个例子,41,单选按钮控件示例,创建Form4窗体,设计界面如右图所
21、示,添加一个分组框和一个命令按钮,分组框中放置四个单选按钮 private void button1_Click(object sender, EventArgs e) if (radiobutton3.Checked) MessageBox.Show(您选对了,这是微软公司开发的操作系统, 信息提示, MessageBoxButtons.OK); else if (radiobutton1.Checked | radiobutton4.Checked) MessageBox.Show(您选错了,这是程序设计语言, 信息提示, MessageBoxButtons.OK); else Messa
22、geBox.Show(您选错了,这是数据库管理系统, 信息提示, MessageBoxButtons.OK); ,42,图片框控件PictureBox 3-1,用于在窗体上放置图形图像,也可以在其上放置多个控件,作为其他控件的容器 图形的绘制功能放到第10章介绍 常用属性 BoderStyle 设置边框样式,可取值如下之一 None:无边框,默认值 FixedSingle:单线边框 Fixed3D:三维立体边框,43,图片框控件PictureBox 3-2,BackgroundImage 获取或设置窗体的背景图像 Image 获取或设置图片框中显示的图像,在运行时可使用Image.FromFi
23、le方法加载图像,44,图片框控件PictureBox 3-3,SizeMode 指定如何显示图像 可取以下值之一 Normal:图像放在图片框的左上角,如果图像比图片框大,则裁剪图像,默认值 AutoSize:调整图片框大小,使之等于图像大小 CenterImage:图像居中显示,如果图像比图片框大,则裁剪图像 StretchImage:拉伸或收缩图像,使之适应图片框的大小 Zoom:图像大小按照原有大小比例增加或减小,45,图片框控件示例,创建Form5窗体,设计界面如右图所示,添加一个图片框和四个命令按钮,并设计以下事件响应方法 private void button1_Click(ob
24、ject sender, EventArgs e) pictureBox1.Image = Image.FromFile(H:C#2005ch8spring.jpg); private void button2_Click(object sender, EventArgs e) pictureBox1.Image = Image.FromFile(H:C#2005ch8summer.jpg); private void button3_Click(object sender, EventArgs e) pictureBox1.Image = Image.FromFile(H:C#2005ch8
25、fall.jpg); private void button4_Click(object sender, EventArgs e) pictureBox1.Image = Image.FromFile(H:C#2005ch8winter.jpg); ,46,组合框控件ComboBox 4-1,是一个具有下拉箭头的文本框 按下下拉箭头按钮就会下拉出一个列表供用户选择项目,还可以在文本框中直接输入数据 一次只能选取或输入一个选项,47,组合框控件ComboBox 4-2,常用属性,48,组合框控件ComboBox 4-3,组合框的Items属性是最重要的属性,它是存放组合框中所有项的集合,对组合框
26、的操作实际上就是对该属性即项集合的操作 下面给出Items的属性和方法说明,49,组合框控件ComboBox 4-4,组合框常用事件说明如下,50,组合框控件示例,创建Form6窗体,设计界面如右图所示,添加两个分组框,第一个分组框中放置一个文本框和一个命令按钮,第二个组合框中放置一个组合框,并设计以下事件响应方法 private void button1_Click(object sender, EventArgs e) if (textBox1.Text != ) if (!comboBox1.Items.Contains(textBox1.Text) comboBox1.Items.Ad
27、d(textBox1.Text); /不添加重复项 ,51,列表框控件ListBox 3-1,为用户提供一个选择的列表 用户可从列表框列出的一组选项中用鼠标选取一个或多个 如果有较多的选择项,超出规定的区域而不能一次全部显示时,C#会自动加上滚动条,52,列表框控件ListBox 3-2,常用属性如下,Items属性和组合框的Items属性一样,不再赘述,53,列表框控件ListBox 3-3,常用事件如下所示 Click 单击控件时发生 SelectedIndexChanged SelectedIndex属性值改变时发生 KeyPress 在控件有焦点的情况下,按下任意键盘键时发生,54,列
28、表框控件示例4-1,创建Form7窗体,设计界面如右图所示,添加两个列表框和四个命令按钮,并设计以下事件响应方法 private void Form7_Load(object sender, EventArgs e) listBox1.Items.Add(清华大学); listBox1.Items.Add(北京大学); listBox1.Items.Add(浙江大学); listBox1.Items.Add(南京大学); listBox1.Items.Add(武汉大学); listBox1.Items.Add(中国科技大学); listBox1.Items.Add(中国人民大学); listB
29、ox1.Items.Add(华中科技大学); listBox1.Items.Add(复旦大学); enbutton(); /调用enbutton()方法 ,55,列表框控件示例4-2,private void enbutton() /自定义方法 if (listBox1.Items.Count = 0)/当左列表框为空时右移命令按钮不可用 button1.Enabled = False; button2.Enabled = False; else/当左列表框不为空时右移命令按钮可用 button1.Enabled = True; button2.Enabled = True; if (list
30、Box2.Items.Count = 0)/当右列表框为空时左移命令按钮不可用 button3.Enabled = False; button4.Enabled = False; else/当右列表框不为空时左移命令按钮可用 button3.Enabled = True; button4.Enabled = True; ,56,列表框控件示例4-3,private void button1_Click(object sender, EventArgs e) if (listBox1.SelectedIndex = 0) /将左列表框中选中项移到右列表框中 listBox2.Items.Add(
31、listBox1.SelectedItem); listBox1.Items.RemoveAt(listBox1.SelectedIndex); enbutton(); private void button2_Click(object sender, EventArgs e) foreach (object item in listBox1.Items) /将左列表框中所有项移到右列表框中 listBox2.Items.Add(item); listBox1.Items.Clear(); enbutton(); ,57,列表框控件示例4-4,private void button3_Clic
32、k(object sender, EventArgs e) if (listBox2.SelectedIndex = 0) /将右列表框中选中项移到左列表框中 listBox1.Items.Add(listBox2.SelectedItem); listBox2.Items.RemoveAt(listBox2.SelectedIndex); enbutton(); private void button4_Click(object sender, EventArgs e) foreach (object item in listBox2.Items) /将右列表框中所有项移到左列表框中 lis
33、tBox1.Items.Add(item); listBox2.Items.Clear(); enbutton(); ,58,带复选框的列表框控件CheckedListBox 4-1,用来显示一系列列表项,每个列表项前面都有一个复选项 是否选中了某个列表项可以很清楚地表现出来 CheckedListBox类继承自ListBox类,其大部分属性和方法都与ListBox类相同 下面介绍CheckedListBox类特有的属性和方法,59,带复选框的列表框控件CheckedListBox 4-2,常用属性如下 CheckedClick 属性值为True时单击某一列表项即可选中它,否则单击只是改变焦点
34、,再次单击才能选中 CheckedIndices 被选中索引的集合 CheckedItems 被选中选项的集合 ColumnWidth 多列显示时,每列的宽度 ThreeCheckBoxes 属性值为True时,复选框以立体方式显示,否则以平面方式显示,60,带复选框的列表框控件CheckedListBox 4-3,常用方法如下 GetItemCheckState 用于取得指定列表项的状态 有一个整型参数,指定列表项的索引 GetItemChecked 返回指定选项是否被选中,61,带复选框的列表框控件CheckedListBox 4-4,SetItemCheckState 设置列表项的状态
35、有两个参数,第一个是整型参数,指定列表项的索引,第二个参数可取以下值之一 CheckState.Checked:选中 CheckState.UnChecked:未选中 CheckState.Inderminate:不确定状态 SetItemChecked 将指定索引处选项的状态设置为CheckState.Checked,62,带复选框的列表框控件示例,创建Form8窗体,设计界面如右图所示,添加一个带复选框的列表框、一个列表框、一个标签和一个命令按钮,并设计以下事件响应方法 private void Form8_Load(object sender, EventArgs e) checkedL
36、istBox1.Items.Add(中国); checkedListBox1.Items.Add(美国); checkedListBox1.Items.Add(俄罗斯); checkedListBox1.Items.Add(英国); checkedListBox1.Items.Add(法国); checkedListBox1.CheckOnClick = True; private void button1_Click(object sender, EventArgs e) foreach(object item in checkedListBox1.CheckedItems) listBox
37、1.Items.Add(item); ,63,定时器控件Timer 2-1,特点是每隔一定的时间间隔就会自动运行一次定时器事件 所谓时间间隔,指的是定时器事件两次调用之间的时间间隔,一般以毫秒(ms)为基本单位 下面介绍定时器控件的属性和方法,64,定时器控件Timer 2-2,65,定时器控件示例,创建Form9窗体,设计界面如右图所示,添加一个标签、一个文本框和一个定时器,并设计以下事件响应方法 private void Form9_Load(object sender, EventArgs e) textBox1.Text = DateTime.Now.ToString(h:mm:ss)
38、; timer1.Enabled = True;/启到定时器timer1 timer1.Interval = 100; private void timer1_Tick(object sender, EventArgs e) textBox1.Text = DateTime.Now.ToString(h:mm:ss); ,66,滚动条控件2-1,滚动条通常与文本框、列表框一起使用,分为两种类型 水平滚动条HScrollBar 垂直滚动条VScrollBar 两种滚动条的结构和使用方法相同,外观如下所示,67,滚动条控件2-2,68,滚动条控件示例2-1,创建Form10窗体,设计界面如右图所示
39、,添加一个水平滚动条、一个垂直滚动条和一个分组框,在分组框中放置一个文本框和一个命令按钮,并设计以下事件响应方法 private void Form10_Load(object sender, EventArgs e) hScrollBar1.Maximum = 100; hScrollBar1.Minimum = 0; hScrollBar1.SmallChange = 2; hScrollBar1.LargeChange = 5; vScrollBar1.Maximum = 100; vScrollBar1.Minimum = 0; vScrollBar1.SmallChange = 2;
40、 vScrollBar1.LargeChange = 5; hScrollBar1.Value = 0; vScrollBar1.Value = 0; textBox1.Text = 0; ,69,滚动条控件示例2-2,private void hScrollBar1_Scroll(object sender, ScrollEventArgs e) textBox1.Text = hScrollBar1.Value.ToString(d); /将hScrollBar1.Value的实际宽度转换成字符串显示在textBox1中 vScrollBar1.Value = hScrollBar1.Va
41、lue; private void vScrollBar1_Scroll(object sender, ScrollEventArgs e) textBox1.Text = vScrollBar1.Value.ToString(d); hScrollBar1.Value = vScrollBar1.Value; private void button1_Click(object sender, EventArgs e) if (Convert.ToInt16(textBox1.Text)= 0 ,70,月历控件MonthCalendar 3-1,可用于显示一个月或几个月的月历 常用属性 Mon
42、thlyBoldedDate 用于设置要用粗体显示的一个月中的日期 MinDate 获取或设置可选择的最小月历日期 MaxDate 获取或设置可选择的最大月历日期 SelectionRange 获取或设置在月历中选择日期的范围,71,月历控件MonthCalendar 3-2,SelectionStart 获取或设置所选日期范围的开始日期 SelectionEnd 获取或设置所选日期范围的结束日期 ShowWeekNumbers 获取或设置是否在月历的左方列出某个星期是本年度的第几个星期 ShowToday 获取或设置是否在月历的底部显示今天的日期 ShowTodayCircle 获取或设置是
43、否在当天的日期上加一个圆圈 TodayDate 获取或设置当前的日期,72,月历控件MonthCalendar 3-3,常用事件如下 DateChanged 当日期改变时发生 DateSelected 当日期被选择时发生 方法很少使用,73,月历控件示例,创建Form13窗体,设计界面如右图所示,添加一个月历控件和一个标签,并设计以下事件响应方法 private void Form13_Load(object sender, EventArgs e) label1.Text = 今天是 + monthCalendar1.TodayDate.Year + 年 + monthCalendar1.T
44、odayDate.Month + 月 + monthCalendar1.TodayDate.Day + 日; private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e) label1.Text = 您选中的是 + monthCalendar1.SelectionStart.Year + 年 + monthCalendar1.SelectionStart.Month + 月 + monthCalendar1.SelectionStart.Day + 日; ,74,日期/时间控件DateTimePick
45、er 4-1,外观像一个组合框,用于显示日期和时间,当单击下拉箭头时,会出现一个按月份显示的日历,可以从中选择日期,75,日期/时间控件DateTimePicker 4-2,常用属性如下 Format 设置显示日期/时间的格式 可取以下值之一 Custom:以自定义格式显示日期/时间 Long:以操作系统设置的长日期格式显示日期/时间 Short:以操作系统设置的短日期格式显示日期/时间 Time:以操作系统设置的时间格式显示日期/时间 CustomFormat 当Format属性值为Custom时,设置自定义格式的字符串,76,日期/时间控件DateTimePicker 4-3,MinDat
46、e 获取或设置可选择的最小日期 MaxDate 获取或设置可选择的最大日期 ShowCheckBox 获取或设置一个值,该值指定在选择日期的左侧是否显示一个复选框 ShowUpDown 获取或设置一个值,该值指定是否使用数值调节按钮调整日期/时间 Value 获取或设置当前日期,77,日期/时间控件DateTimePicker 4-4,常用事件 ValueChanged 当选择的日期改变时发生 很少使用方法,78,日期/时间控件示例,创建Form11窗体,设计界面如右图所示,添加一个日期/时间控件、一个标签和一个文本框,并设计以下事件响应方法 private void Form11_Load(
47、object sender, EventArgs e) dateTimePicker1.Format = DateTimePickerFormat.Long; dateTimePicker1.ShowCheckBox = True; dateTimePicker1.ShowUpDown = False; textBox1.Text = ; private void dateTimePicker1_ValueChanged(object sender, EventArgs e) textBox1.Text = dateTimePicker1.Value.ToString(yyyy.MM.dd h
48、h:mm:ss); ,79,超链接标签控件LinkLabel 3-1,同Label控件十分相似,但具有超链接功能 可以链接到网站的网页上,也可以链接到其他应用程序 LinkLabel继承自Label类,其属性方法和事件基本上和Label相同,但有几个特殊的用于超链接的属性和事件,80,超链接标签控件LinkLabel 3-2,常用属性 ActiveLinkColor 获取或设置超链接文字的颜色 LinkArea 获取或设置标签文本中超链接部分的区域大小 需要设置两个值,一个是该区域起始字符的位置,另一个是区域的长度 DisabledLinkColor 获取或设置该控件不用时,超链接文字的颜色,
49、81,超链接标签控件LinkLabel 3-3,LinkColor 获取或设置未链接过的超链接文字的颜色 VisitedLinkColor 获取或设置已链接过的超链接文字的颜色 常用事件 LinkClicked 单击超链接文本时发生 很少使用方法,82,超链接标签控件示例,创建Form12窗体,设计界面如上图所示,添加一个超链接标签控件,并设计以下事件响应方法 private void Form12_Load(object sender, EventArgs e) linkLabel1.LinkColor = Color.Blue; linkLabel1.ActiveLinkColor = C
50、olor.Green; private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) System.Diagnostics.Process.Start(); ,83,多文档窗体2-1,多文档界面应用程序由一个应用程序(MDI父窗体)中包含多个文档(MDI子窗体)组成 父窗体作为子窗体的容器,子窗体显示各自文档,它们具有不同的功能 处于活动状态的子窗体的最大数目是1,子窗体本身不能成为父窗体,而且不能将其移动到父窗体的区域之外,84,多文档窗体2-2,多文档界面应用程序有如下特性 所有子窗体
51、均显示在MDI父窗体的工作区内,用户可改变、移动子窗体的大小,但被限制在MDI父窗体中 当最小化子窗体时,它的图标将显示在MDI父窗体上而不是在任务栏中 当最大化子窗体时,它的标题与MDI父窗体的标题一起显示在MDI父窗体的标题栏上 MDI父窗体和子窗体都可以有各自的菜单,当子窗体加载时覆盖MDI父窗体的菜单,85,MDI父窗体的属性,86,MDI父窗体的方法,一般只使用父窗体的LayoutMdi方法,格式为 MDI父窗体名.LayoutMdi(value) 其功能是在MDI父窗体中排列MDI子窗体,参数value决定排列方式,有以下4种取值 LayoutMdi.ArrangeIcons:所有
52、MDI子窗体以图标形式排列在MDI父窗体中 LayoutMdi.TileHorizontal:所有MDI子窗体均垂直平铺在MDI父窗体中 LayoutMdi.TileVertical:所有MDI子窗体均水平平铺在MDI父窗体中 LayoutMdi.Cascade:所有MDI子窗体均层叠在MDI父窗体中,87,MDI子窗体的属性,88,创建多文档应用程序,基本步骤如下 创建一个普通窗体PForm作为父窗体,设置PForm.IsMdiContainer=True 创建一个或者多个普通窗体作为子窗体的模板 在父窗体PForm上使用以下语句创建并显示子窗体(设子窗体模板为CForm) CForm. c
53、hild = new CForm(); /创建子窗体对象 child.MdiParent = this; /建立父子窗体关系 child.show(); /显示子窗体,89,多文档窗体示例2-1,【例8.2】 设计一个Windows应用程序,说明多文档窗体的使用方法,创建Form1窗体作为父窗体,设计界面如上图所示,添加四个命令按钮,并设计以下事件响应方法 private void button1_Click(object sender, EventArgs e) Form2 child = new Form2(); child.MdiParent = this; child.Show(); n+; child.Text = 第 + n + 个子窗体; ,90,多文档窗体示例2-2,private void button2_Click(object sender, EventArgs e) this.LayoutMdi(System.Windows.Forms.MdiLayout.Cascade); private void button3_Click(object sender, EventA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西安信息职业大学《幼儿教师专业伦理》2024-2025学年第二学期期末试卷
- 机关人财物内部管理制度
- 机关内部规章制度汇编
- 浙江育英职业技术学院《项目投融资及可行性研究》2024-2025学年第二学期期末试卷
- 极氪内部岗级制度
- 某企业内部审计管理制度
- 检测机构内部开会制度
- 民办学校内部管控制度
- 民政系统内部管理制度
- 河道采砂内部监管制度
- 大客户经理招聘笔试题及解答
- 主管聘用合同2024年
- 国家核安保技术中心社会招聘笔试真题2022
- 主持人培训完整课件
- 人工智能行业的智能产品设计与开发培训
- “三新”背景下 的2024年高考物理复习备考策略讲座
- 销售技术培训教材
- 《机车乘务作业》 课件 01段内作业过程
- 科室轮转医生考核评分表
- 2023上海松江区初三二模数学试题及答案
- 现代分子生物学进展
评论
0/150
提交评论