您好,欢迎访问三七文档
1本章教学目标窗体的常用属性、事件和方法多窗体的显示与隐藏、启动窗体的设置常用公共控件的使用技巧7.1窗体Windows应用程序的开发平台所有控件的容器每个Windows应用程序都应该至少拥有一个窗体。7.1.1窗体的常用属性7.1.1窗体的常用属性NameTextSizeBackColorBackgroundImageBackgroundImageLayoutEnabled(true,false)FontFormBorderStyle(FixedSingle,FixedDialog,Sizable)IconLocationStartPosition(Manual,CenterScreen,WindowsDefault)WindowState(Normal,Maximized,Minimized)BackgroundImageLayout属性NoneCenterTileZoomStretch7.1.2窗体的常用事件选择事件窗体的常用事件Click(窗体单击)DoubleClick(窗体双击)KeyPress(键盘击键)KeyDown(键盘键按下)MouseDown(鼠标键按下)FormClosing(窗体正在关闭)FormClosed(窗体已经关闭)Load(窗体加载)LocationChanged(窗体位置改变)Resize(窗体大小改变)观察与思考MouseDown与Click有什么不同?KeyPress与KeyDown有什么不同?实例7.1例7.1窗体事件的发生过程privatevoidForm1_Load(objectsender,EventArgse){label1.Text+=窗体加载事件发生\n\n;}privatevoidForm1_Click(objectsender,EventArgse){label1.Text+=鼠标单击窗体事件发生\n\n;}privatevoidForm1_MouseDown(objectsender,MouseEventArgse){label1.Text+=鼠标键按下事件发生\n\n;}privatevoidForm1_MouseUp(objectsender,MouseEventArgse){label1.Text+=鼠标键释放事件发生\n\n;}privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse){label1.Text+=窗体将要关闭\n\n;}privatevoidForm1_FormClosed(objectsender,FormClosedEventArgse){MessageBox.Show(窗体已经关闭);}7.1.3窗体的常用方法Show()加载并显示非模态窗体Hide()隐藏窗体Close()关闭并卸载Refresh()刷新ShowDialog()加载并显示模态窗体(如对话框等)Activate()把焦点移到窗体上并激活BringToFront()移到所有窗体的顶层SendToBack()移到所有窗体的底层SetBounds设置窗体的位置和大小我怎么知道一个对象有哪些方法可用?显示窗体的方法Show()显示非模态窗体ShowDialog()显示模态窗体模态窗体——用户必须在完成它所要求的操作,或者将它关闭之后,否则无法对打开它的主窗体执行任何操作非模态窗体——即使未关闭,或者它所要求的操作未完成,也可以同时操作调用它的主窗体设置窗体位置和大小的方法SetBounds()动态改变窗口位置和大小this.SetBounds(intx,inty,intwidth,intheight);x、y水平与垂直坐标width、height宽度和高度实例7.2例7.2利用方向键移动窗体位置intpointX,PointY,myWidth,myHeight;//这几个变量必须在此处定义privatevoidForm1_KeyDown(objectsender,KeyEventArgse){if(e.KeyValue==37)//←的键位置码pointX-=10;//窗体左移elseif(e.KeyValue==38)//↑的键位置码PointY-=10;//窗体上移elseif(e.KeyValue==39)//→的键位置码pointX+=10;//窗体右移elseif(e.KeyValue==40)//↓的键位置码PointY+=10;//窗体下移this.SetBounds(pointX,PointY,myWidth,myHeight);}privatevoidForm1_Load(objectsender,EventArgse){pointX=100;//窗体初始位置的水平坐标PointY=50;//窗体初始位置的垂直坐标myWidth=300;//窗体的初始宽度myHeight=180;//窗体的初始高度this.SetBounds(pointX,PointY,myWidth,myHeight);}实例7.3例7.3比较模态窗体和非模态窗体privatevoidbutton1_Click(objectsender,EventArgse){FormmodalForm=newForm();Sizenewsize=newSize(300,150);modalForm.Size=newsize;modalForm.Text=我是模态窗体;modalForm.ShowDialog();}privatevoidbutton2_Click(objectsender,EventArgse){FormnonmodalForm=newForm();Sizenewsize=newSize(300,150);nonmodalForm.Size=newsize;nonmodalForm.Text=我是非模态窗体;nonmodalForm.Show();}7.1.4多窗体运用程序添加新的窗体7.1.4多窗体运用程序多窗体的显示与隐藏窗体Form1中的事件过程代码privatevoidbutton1_Click(objectsender,EventArgse){Form2newform2=newForm2();newform2.Show();this.Hide();}多窗体的显示与隐藏窗体Form2中的事件过程代码privatevoidbutton1_Click(objectsender,EventArgse){Form1newform1=newForm1();newform1.Show();this.Hide();}设置启动窗体思考应用多窗体时,怎样把处于隐藏状态的Form1真正地关闭?在程序中用什么方法?小结窗体的属性,大部分是可以采取默认值的,需要用户自行设置的并不多,就连表中介绍的那些也不是每次都需要设置的。窗体的事件是由系统设计,并且由程序以外的因素所触发的,要特别注意有些窗体事件发生的先后顺序。窗体是一种特殊的对象,用户在设计阶段设计的一个窗体,它既是类,又是对象,在一个窗体内引用其它窗体时,必须先创建被引用窗体的实例。模态窗体是对话框一类的窗体,如果不响应它,就无法对调用它的主窗体执行任何操作。作业编写程序,为数组A赋予10个随机两位整数,找出具有最大值的元素并指示其位置例如:7.2常用公共控件本次课内容ButtonLabelTextBoxRichTextBoxRadioButtonCheckBoxGroupBox(容器)7.2.1按钮控件按钮的主要属性(1)Text属性设置显示在按钮表面上的文字“开始(&S)”——组合键Alt+S(2)Enabled属性设置按钮是否可用,防止误操作(3)Visible属性设置按钮的可见性7.2.2文本控件标签Label不能以交互方式显示内容主要用于显示提示、说明性文字信息文本框TextBox允许用户键盘输入文字信息富文本框RichText可以显示多种类型格式的文本信息Label控件的常用属性Font属性Font属性为环境属性,通常在程序设计阶段设置。如果不设置,就会引用父控件中的Font属性。Font属性是只读的,程序运行时不能通过赋值来改变。如果要在程序运行期间改变Font属性,必须导入System.Drawing命名空间。实例7.4例7.4通过执行代码改变Label的属性privatevoidbutton1_Click(objectsender,EventArgse){label1.Text+=朝辞白帝彩云间\n千里江陵一日还\n;label1.Text+=两岸猿声啼不住\n轻舟已过万重山\n;label1.BackColor=Color.Transparent;//背景透明label1.ForeColor=Color.Tomato;//前景颜色为番茄色label1.Font=newFont(楷体_GB2312,16,FontStyle.Bold|FontStyle.Underline);}实例7.4TextBox控件的常用属性TextBox控件的常用事件TextBox控件的常用方法实例7.5例7.5在文本框textBox1中用鼠标选择一段文字之后,单击“复制”按钮,被选中的文字便在textBox2中显示;若单击“删除”按钮则将textBox1中被选中文字删除后剩余的内容在textBox2中显示。实例7.5代码privatevoidbutton1_Click(objectsender,EventArgse)//复制{textBox2.Text=textBox1.SelectedText;//被选中的文本label2.Text+=(被选中的字符数为+textBox1.SelectionLength+个);}privatevoidbutton2_Click(objectsender,EventArgse)//删除{inttextStart=textBox1.SelectionStart;//被选中文字的开始位置inttextLength=textBox1.SelectionLength;//被选中文字的长度stringstring1=textBox1.Text.Substring(0,textBox1.SelectionStart);stringstring2=textBox1.Text.Substring(textLength+textStart);textBox2.Text=string1+string2;label2.Text+=(剩余部分的文字长度为+textBox2.Text.Length+);}实例7.6例7.6创建一个用来输入学生个人基本情况的用户界面,编写程序检验在各文本框中输入的文本信息是否合法。例7.6代码privatevoidtextBox1_Validated(objectsender,EventArgse){if(textBox1.Text.Length2)//姓名不足2个字报错label7.Text=姓名填写不完整;}privatevoidtextBox2_Validating(objectsender,CancelEventArgse){//如果性别不为“男”或“女”则报告出错if(textBox2.Text==男||textBox2.Text==女)label7.Text=;elselabel7.Text=性别填写错误!;}例7.6代码privatevoidtextBox3_Validating(objectsender,CancelEventArgse){//如果“年龄”范围不合理则报告出错if(textBox3.Text.Length0){intage=int.Parse(textBox3.Text);if(age16)label7.Text=这一位是少年大学生吗?;if(age35)label7.Text=age+岁了才读本科,是不是年龄填错了?;}}privatevoidtextBox3_KeyPress(obj
本文标题:C#窗体和常用软件
链接地址:https://www.777doc.com/doc-4710512 .html