C#程序设计_免费下载.ppt_第1页
C#程序设计_免费下载.ppt_第2页
C#程序设计_免费下载.ppt_第3页
C#程序设计_免费下载.ppt_第4页
C#程序设计_免费下载.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

C#程序设计_免费下载.ppt.ppt 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章 WinForm初步,内容提要 7.1窗体 7.2控件使用 7.3基本控件 7.4常用组件 7.5菜单 7.6对话框,7.7高级控件 7.8com组件 7.9mdi 7.10 问与答 7.11 思考与练习 7.12 实战任务,本章重难点,常用控件的属性和方法 常用组件(Timer) 菜单的使用 对话框的使用 高级控件的使用(richtextbox) MDI(菜单合并),7.1 窗体,窗体是WinForm应用开发中最基本的一个容器控件,和其它诸多普通控件一样,都继承于控件基类System.Windows.Forms.Control,故所有的控件都具有一些共有的特性。,属性:,方法,事件,M

2、ouseEventArgs Click与MouseClick事件很类似,但是MouseClikc事件的参数附带了更多的鼠标按键信息。MouseClick仅能通过鼠标操作触发,而Click事件则不受此限。,7.2 控件使用,控件添加 双击“工具箱”中要使用的控件,此时将会在窗体的默认位置(客户区的左上角)添加默认大小的控件; 在“工具箱”中选中一个控件,鼠标指针变成与该控件对应的形状;把鼠标指针移到窗体中要摆放控件的位置,按下鼠标左键并拖动鼠标画出控件大小后,松开鼠标即可在窗体的指定位置绘制指定大小的控件; 直接把控件从“工具箱”拖放到窗体中,控件为默认大小; 直接使用代码控制添加。,控件调整

3、选中要调整的控件,使用“格式”菜单或是快捷菜单中的命令或者工具栏上的格式按钮进行调整。在调整控件的格式时,将按照基准控件对选择的多个控件进行调整。 使用Ctrl键或Shift键选择多个控件,也可以拖动鼠标选择一个控件范围,此时最先进入窗体的控件将作为调整的基准控件。被选中的控件中,基准控件周围是白色方框,其他控件周围是黑色方框。,控件分层 右键单击要操作的控件,从快捷菜单中选择“置于顶层(或底层)”命令或者单击工具栏中的置于顶层(或底层)按钮,则可以把控件置于窗体的最顶层(或底层)。 在代码中将控件置于窗体顶层或底层。,控件定位 在窗体设计器中通过拖动控件进行定位 在选中控件之后可以使用箭头键

4、微调,更精确地定位控件 通过指定控件的Location属性来定位控件;既可以手工指定,也可以代码指定,控件大小 使用鼠标直接拖动控件大小 在窗体中选中控件,然后使用Shift +箭头键来微调控件大小 在属性窗口中改变控件的Size属性值 通过代码来调整Size属性值 通过代码来调整Bounds属性值,控件的Tab键顺序 控件的Tab键顺序决定了用户使用Tab键切换时的顺序。默认情况下,控件的Tab键顺序就是控件添加到窗体中的顺序。,键盘事件处理两类: 第一类是KeyPress事件,当按下的键表示的是一个ASCII 字符时就会触发这类事件,可通过它的 KeyPressEventArgs 类型参数

5、的属性 KeyChar 来确定按下键的 ASCII 码。使用 KeyPress 事件无法判断是否按下了修改键(例如 Shift,Alt 和 Ctrl 键); 第二类是KeyUp 或KeyDown事件,该类事件有一个KeyEventArgs类型的参数,通过该参数可以测试是否按下了一些修改键、功能键等特殊按键信息。,KeyPressEventArgs类的主要属性(KeyPress事件的参数类型) Handled:用来获取或设置一个值,该值指示是否处理过KeyPress事件 KeyChar:用来获取按下的键对应的字符,通常是该键的ASCII码,KeyEventArgs类的主要属性(KeyUp和 Ke

6、yDown事件的参数类型) Alt:用来获取一个值,该值指示是否曾按下Alt键 Control:用来获取一个值,该值指示是否曾按下Ctrl键 Handled:用来获取或设置一个值,该值指示是否处理过此事件 KeyCode:以 Keys枚举型值返回键盘键的键码,该属性不包含修改键(Alt、Control和 Shift键)信息,用于测试指定的键盘键 KeyData:以 Keys 枚举类型值返回键盘键的键码,并包含修改键信息,用于判断关于按下键盘键的所有信息 KeyValue:以整数形式返回键码,而不是Keys枚举类型值。用于获得所按下键盘键的数字表示 Modifiers:以 Keys 枚举类型值返

7、回所有按下的修改键(Alt、Control 和 Shift 键),仅用于判断修改键信息 Shift:用来获取一个值,该值指示是否曾按下Shift键,鼠标事件处理 MouseEnter:在鼠标指针进入控件时发生。 MouseMove:在鼠标指针移到控件上时发生。事件处理程序接收一个MouseEventArgs类型的参数,该参数的主要属性及其含义如下。 Button:用来获取按下的是哪个鼠标按钮。该属性是MouseButtons枚举型的值,取值及含义如下:Left(按下鼠标左按钮)、Middle(按下鼠标中按钮)、Right(鼠标右按钮)、None(没有按下鼠标按钮) Clicks:用来获取按下并

8、释放鼠标按钮的次数 Delta:用来获取鼠标轮已转动的制动器数的有符号计数。制动器是鼠标轮的一个凹口 X:用来获取鼠标所在位置的x坐标 Y:用来获取鼠标所在位置的y坐标 MouseHover:当鼠标指针悬停在控件上时将发生该事件 MouseDown:当鼠标指针位于控件上并按下鼠标键时将发生该事件。 MouseWheel:在移动鼠标轮并且控件有焦点时将发生该事件。 MouseUp:当鼠标指针在控件上并释放鼠标键时将发生该事件。 MouseLeave:在鼠标指针离开控件时将发生该事件,7.3 常用控件,1.Label 控件 作用:用于显示静态文本 基本属性 Text: 标签中显示的说明文字 Siz

9、e: 标签大小 AutoSize:是否自动调整控件的大小以完整显示其内容,默认值为false BackColor:背景色 BorderStyle:边框样式,其值有3个: BorderStyle.None 无边框(默认值) BorderStyle.FixedSingle 固定单边框 BorderStyle.Fixed3D 三维边框 TabIndex: 设置或返回对象的Tab键顺序。 Enabled: 是否可用。,常用事件 MouseEnter事件:鼠标进入控件区域内时触发。 MouseDown事件: 在控件区域内按下鼠标时触发。 MouseLeave事件:鼠标离开控件区域是触发。,private

10、 void label1_MouseEnter(object sender, EventArgs e) this.label1.BackColor = Color.Red; ,例如:7.7 MouseEnter 事件,2.Button控件 作用:响应用户的鼠标/键盘操作。 基本属性 DialogResultL: 在使用ShowDialog方法显示窗体时,返回ShowDialog方法的返回值。 Image: 显示在按钮上的图像。 ImageAlign:指定图像的对齐方式。 TextAlign:指定按钮文字的对齐方式。 常用事件 Click: 单击事件 MouseDown按下鼠标时触发。 Mous

11、eUp:释放鼠按键时触发。 MouseMove:在控件上移动鼠标时触发。,实例 7.8 设计窗体如下图 private void button1_Click(object sender, System.EventArgs e) MessageBox.Show(this,“你点击了确定按钮。”, “提示信息”,MessageBoxButtons.OK,MessageBoxIcon.Information); 运行结果:,例7.9. MouseEnter事件:鼠标进入按钮区域时触发。 button1_MouseEnter(object sender, System.EventArgs e) thi

12、s.button1.BackColor=Color.Red; /this.button1.BackColor=System.Drawing.SystemColors.Control; ,3.RadioButton 控件 作用:为用户提供单个选择的选项。 基本属性 CheckAlign:单选按钮对齐方式 Checked: 是否选中。 Appearance: 单选按钮的显示形式。 Texte :返回按钮控件内显示的文字。 常用事件 CheckedChanged事件:Checked值发生更改时触发。,实例 7.10 设计窗体,private void radioButton1_CheckedChan

13、ged(object sender, EventArgs e) textBox1.Text = radioButton1.Text; private void radioButton2_CheckedChanged(object sender, EventArgs e) textBox1.Text = radioButton2.Text; private void radioButton3_CheckedChanged(object sender, EventArgs e) textBox1.Text = radioButton3.Text; ,直接调用方法,第1步:直接添加方法radioBu

14、tton_CheckedChanged。 private void radioButton_CheckedChanged(object sender, System.EventArgs e) RadioButton check=(RadioButton)sender;/将object对象转型为RadioButton对象 if(check.Checked) this.textBox1.Text=check.Text; 第2步:将三个RadioButton控件的CheckedChanged触发事件均选择为radioButton_CheckedChanged 第3步:运行窗体,4.CheckBox

15、控件 作用:为用户提供多个选择的选项。 基本属性 CheckState:返回复选框的状态。 Checked: 是否选中。 Appearance:按钮的显示形式,选定时为按下的按钮,否则为凸起按钮。 Texte :返回按钮控件内显示的文字。 TextAlign:指定按钮文字的对齐方式。 常用事件 CheckedChanged事件:Checked值发生更改时触发。 CheckStateChanged事件: CheckedState属性改变时触发。,实例 7.11 设计画面如图:,第1步:设计界面,第2步:在Form2类中,直接添加方法checkBox_CheckedChanged,该方法的功能是当

16、选中某个复选框时,该复选框的文字会变为绿色。 private void checkBox_CheckedChanged(object sender, System.EventArgs e) CheckBox checkbox=(CheckBox)sender; if(checkbox.Checked) checkbox.ForeColor=Color.Green; else checkbox.ForeColor=Color.Black; 第3步:将三个CheckBox控件的CheckedChanged触发事件均选择为checkBox_CheckedChanged。,第4步:添加button1按

17、钮的Click事件代码。 private void button1_Click(object sender, EventArgs e) string str=选择结果:; str+=(this.checkBox1.Checked=true)?(this.checkBox1.Text+、):; str+=(this.checkBox2.Checked=true)?(this.checkBox2.Text+、):; str+=(this.checkBox3.Checked=true)?(this.checkBox3.Text+、):; str+=(this.checkBox3.Checked=tr

18、ue)?(this.checkBox4.Text+、):; if(strstr.Length-1=、) str=str.Substring(0,str.Length-1); label2.Text =str; ,第5步:直接执行窗体Form2的方法。 当执行项目时,C#会自动调用窗体Form1,此处示例不需执行Form1,而希望执行窗体Form2,为了能够直接调用窗体Form2,必须在Form1类中找到Main方法,对其进行修改: static void Main() Application.Run(new Form2(); ,5.TextBox 控件 作用:接收用户的文本输入。 基本属性 T

19、ext属性:表示文本框中的当前文本。 Multiline属性:表示是否可以包含多行内容。 MaxLength属性:表示用户可以在文本框控件中最多键 入的字符数。 PasswordChar属性:用于屏蔽在单行文本框控件中输入的的密码字符 。 BorderStyle: 边框样式, BorderStyle.None 无边框(默认值) BorderStyle.FixedSingle 固定单边框 BorderStyle.Fixed3D 三维边框 Enabled: 是否可用。 Visible: 是否可见。 ReadOnly: 只读方式。 SelectedTexte :当前选中的文字,只能在代码中使用。 常

20、用事件 CheckedChanged事件:Checked值发生更改时触发。,实例 7.12 完成下列窗体设计,private void textBox1_TextChanged(object sender, EventArgs e) this.textBox2.Text = this.textBox1.Text; ,6. ListBox控件 作用:显示一组条目,让用户从中选择一条或者多条,然后进行相应的处理。 常用属性: (1)Items:列表中何存的项。 (2)SelectionMode: Single:同一时刻只能选择一条 Multiple:同一时刻可以选择一条或者多条 (3)Column

21、 Width:获取或设置ListBox中列的宽度。 (4)SelectionMode: MultiExtended:允许一次选择多项,支持Ctrl与shift键选择多项。 MultiSimple:允许一次选择多项,支持单击选择多项。 None:不能在列表框中选择。 One:一次只选择一项(默认)。 (5)Text:返回当前选定项的文本。,(6)SelectedIndex:获取或设置控件中当前选定项的从0开始的索引。 (7)SelectedIndices:在允许选择多项时用来获取当前所有选定项的索引集。 ListBoxListBox常用方法 (1)Items.Add:向列表框的底部增添一个列表项

22、,调用格式: listBox1.Items.Add(s):把参数s添加到列表框中 (2)Items.Insert:在列表框中指定位置插入一个列表项,调用格式: ListBox对象.Items.Insert(n,s): 参数n代表要插入的项的位置索引,索引不能小于0,不能大于当前项目数;参数 s代表要插入的项,其功能是把s插入到listBox控件指定的列表框的索引为n的位置处。但是需要注意的是:在Sorted属性为true时,Insert方法插入的项不能被正确排序。,(3)Items.RemoveAt方法: 删除指定索引的项,调用格式: listBox1.Items.RemoveAt(index

23、); 参数为索引 (4)Items.Clear:清除列表框中的所有项。调用格式: listBox1.Items.Clear(); (5)SetSelected:用来选中某一项或取消对某一项的选择,调用格式: ListBox1.SetSelected(n,l):如果参数 l 的值是 true,则在列表框中选中索引为 n 的列表项,如果参数l 的值是 false,则索引为n 的列表项未被选中。 (6)GetSelected:返回一个值,该值表明是否选定了指定的项,常用事件,Click DoubleClick SelectedIndexChanged:当 SelectedIndex 属性更改时发生,

24、索引改变时触发。 SlectedValueChanged: 当 SelectedValue 属性更改时发生,值改变时触发。,1.添加一不重复条目的方法: bool ifExist=false; for(int i=0;ithis.ListBox1.Items.Count;i+) if(this.ListBox1.Itemsi.ToString()=abc) ifExist=true; break; if(ifExist=false) this.ListBox1.Items.Add(abc); ,2.删除当前所选条目的方法 /如果选择了某项 if(this.ListBox1.SelectedIn

25、dex-1) this.ListBox1.Items.Remove(this.ListBox1.SelectedItem); 3.删除选中的一条或者多个条目的方法: for (int i = listBox1.SelectedItems.Count - 1; i = 0; i-) listBox1.Items.Remove(listBox1.SelectedItemsi); ,例7-13:列表框示例,private void button1_Click(object sender, EventArgs e) bool ifExist = false; for (int i = 0; i thi

26、s.listBox1.Items.Count; i+) if (this.listBox1.Itemsi.ToString() = textBox1.Text) ifExist = true; break; /SelectionMode 属性, if (ifExist = false) this.listBox1.Items.Add(textBox1.Text); private void button2_Click(object sender, EventArgs e) for (int i = listBox1.SelectedItems.Count - 1; i = 0; i-) lis

27、tBox1.Items.Remove(listBox1.SelectedItemsi); ,ComboBox控件,这种控件有两部分组成,即一个文本框和一个列表框。文 本框可以用来显示当前选中的条目,如果文本框可以编辑,则 可以直接输入选择的条目。单击文本框旁边带有向下箭头的按 钮,则会弹出列表框,使用键盘或者鼠标可以在列表框中选择 条目。 常用属性: 1 Text属性、Items属性、DropDownStyle属性。 其中DropDownStyle属性有: Simple:同时显示文本框和列表框,文本框可以被编辑。 DropDown:只显示文本框,需要通过键盘或者鼠标打开列 表框,文本框可以被编

28、辑。 DropDownList:只显示文本框,需要通过键盘或者鼠标打 开列表框,文本框不可以被编辑。 2 SelectedIndexChanged事件。,举例:第一步:设计窗体。,第二步:添加comboBox1的SelectedIndexChanged事件。 private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e) if(boBox1.SelectedIndex-1 ,第三步:添加comboBox2SelectedIndexChanged事件,private void comboBox2_Sel

29、ectedIndexChanged(object sender, System.EventArgs e) if(boBox1.SelectedIndex-1 第四步:运行,修改小组和项目选项,观察ListBox中内容的变化。,ToolTip控件,该控件的用途是当鼠标位于某个控件上并停留一段时间后, 显示该控件功能的提示信息。 主要属性有: Active:指示该控件当前是否处于激活状态。 AutomaticDelay:设置经过多长时间显示提示信息,缺省值为500ms。 AutoPopDelay:设置鼠标指针停留多长时间后消失提示信息。 例如:向6.1.7例子中的设计窗体拖放一个ToolTip控件

30、,然 后在构造函数中加入下列代码: this.toolTip1.SetToolTip(boBox1,选择参加的小组。); this.toolTip1.SetToolTip(boBox2,选择左边小组参加的项目。); this.toolTip1.SetToolTip(this.listBox1,各小组参加的项目列表。); 运行,分别将鼠标在上述控件中停留一段时间,观察显示的提示 信息。,PictureBox控件,常用属性有: 1 Image:在PictureBox中显示的图像。 2 SizeMode:图片在控件中的显示方式。 其属性有: AutoSize:调整控件PictureBox大小,使其等

31、于所包含 的图像大小。 CenterImage:如果控件PictureBox比图像大,则图像将 居中显示。如果图像比控件大,则图片将居于 控件中心,而外边缘将被剪裁掉。 Normal:图像被置于控件的左上角。如果图像控件大, 则超出部分被剪裁掉。 StretchImage:控件中的图像被拉伸或收缩,以适合控 件的大小。,举例: 第一步:向窗体上拖放一个PictureBox控件,一个Label控件, 分别调整为适当大小。 第二步:设置pictureBox1的Image属性,将一个图片放入控件 内。然后修改SizeMode属性,观察效果。 第三步:添加下列事件: private void pict

32、ureBox1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) this.label1.Text=string.Format(“鼠标在PictureBox中的 位置:x=0,y=1,e.X,e.Y); 第四步:运行,在图片内移动鼠标,观察结果。,ProgressBar控件,ProgressBar控件用来动态显示一个过程的进行程度, 当某个操作需要较长的时间(几秒钟或者几分钟或者更长) 就需要使用ProgressBar向用户显示操作的进展情况。 1. ProgressBar控件中常用的基本属性 1) Minimum:

33、表示进度条的最小值,缺省值为0。 2) Maximum:表示进度条的最大值,缺省值为100。 3) Value:表示进度条的当前值,缺省值为0,它应该在Minimum和Maximum之间取值。 2. 操作示例 下面的例子说明了如何使用进度条来显示一个较长时 间的计算过程。,第一步:在窗体上放两个ProgressBar控件,两个 Label控件,两个TextBox控件,一个Button控件,如图:,第二步:添加开始计算按钮的Click响应事件: private void button1_Click(object sender, System.EventArgs e) this.button1.E

34、nabled=false; int outLoop=Int32.Parse(this.textBox1.Text); int innerLoop=Int32.Parse(this.textBox2.Text); gressBar1.Maximum=outLoop; gressBar2.Maximum=innerLoop; for(int i=1;i=outLoop;i+) for(int j=1;j=innerLoop;j+) double d=i+j; if(j%100=0) gressBar2.Value=j; gressBa

35、r1.Value=i; this.button1.Enabled=true; 第三步:运行,观察结果。,TabControl控件,使用这个控件可以创建带有多个标签页的窗口,每个标 签页都是一个容纳其它控件(比如TextBox或Button)的容 器。 1. TabControl控件中常用的基本属性 1) Multiline属性 2) ImageList属性 3) TabPages属性,2.操作示例 第一步: (1)创建一个TestTabControl的Windows应用程序,向设 计窗体上拖放一个TabControl控件,调整大小。 (2)向窗体上拖放一个ImageList控件,添加三个图标,

36、 并修改ImageSize属性为32,32;修改ColorDepth为 Depth32Bit。 (3)设置TabControl的ImageList属性为imageList1。 (4)设置TabControl的TabPages属性,添加三个TabPage, 点击确定,再分别在三个TabPage上放一些控件便于区分。,设计界面如图所示:,ListView控件,ListView用列表的形式显示一组数据,每条数据都是 一个ListItem类型的对象。通常使用ListView来显示对数 据库的查询结果,Windows系统中的文件浏览器就是一个 ListView控件。 1. ListView控件中常用的基

37、本属性 1) View属性:表示数据的显示模式,用四种选择: Large Icons(大图标):每条数据都用一个带有文本的大图标表示。 Small Icons(小图标):每条数据都用一个带有文本的小图标表示。 List(列表):提供ListItems对象视图。 Details(详细列表):每条数据有多个字段组成,每个字段各占一列。 2) MultiSelect属性:表示是否允许多行选择。,2. 操作示例 创建一个TestListView的应用程序,然后向窗体上拖 放一个ListView控件,4个Label控件,3个TextBox控件 (textBoxName、textBoxAddress、te

38、xtBoxPhone),两个 Button控件(buttonAppend、buttonDelete)和一个 Combobox控件,并适当调整控件和窗体的位置和大小。 设置Combobox控件的DropDownStyle属性为 DropDownList,并设置其Items属性为:大图标、小图 标、列表、详细列表。,窗体如图所示:,(3)添加一个ImageList控件(imageList1),设置然 后向该控件中加入1个16*16的图标文件。 (4)添加一个ImageList控件(imageList2),设置然 后向该控件中加入1个32*32的图标文件,并设置ImageSize为 32,32。 (5)设置ListView控件的属性: LargeImageList:选imageList2 SmallImageList:选imageList1 Columns:姓名(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论