




已阅读5页,还剩177页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第8章Windows窗体应用程序设计,2,8.1Windows编程的基础知识,Windows窗体是制作标准Win32屏幕的一种更高级的方法,具有非常健全的功能。.NETFramework中的所有语言都使用Windows窗体来代替它们在图形窗体中所使用的组件。在.NET下,Windows窗体为所有的语言提供了一套丰富的、统一的控件和绘图功能,以及用于图形和绘图底层Windows服务的标准API。有了Windows窗体,任何图形和屏幕函数就不再需要使用内置的Windows图形接口了。,Windows应用程序是运行在Windows操作系统中的单机程序或C/S结构的客户端程序。包括两方面:1、Windows编程接口和类库2、Windows应用程序的基本结构,1Windows编程接口和类库,操作系统为了方便应用程序设计,一般都要提供一个函数库,设计应用程序的一些共用代码都包含在这个库中。程序员可以调用库中函数,以简化编程。APIMFC类库组件和组件库.NetFrameWork基础类库,2Windows应用程序的基本结构,Windows应用程序和控制台应用程序的基本结构类似,程序的执行总是从Main()方法开始,主函数Main()必须在一个类中。但Windows应用程序使用图形界面,一般有一个窗口(Form),采用事件驱动方式工作。,最简单的Windows应用程序如下:usingSystem;/引入命名空间usingSystem.Windows.Forms;publicclassForm1:Form/类定义staticvoidMain()/主函数Application.Run(newForm1();,(1)最简单的Windows应用程序,usingSystem;usingSystem.Windows.Forms;usingSystem.Drawing;publicclassForm1:Form/构造函数publicForm1()this.Text=我的第一个程序;button1=newButton();/生成Button类对象,(2)窗体中增加按钮(Button)控件的方法:,Buttonbutton1;/生成Button类引用变量,/修改按钮位置button1.Location=newPoint(25,25);/修改button1按钮的标题button1.Text=“确定”;/button1_Click函数是按钮单击事件的单击事件处理函数button1.Click+=newSystem.EventHandler(button1_Click);/按钮增加到窗体中并显示this.Controls.Add(button1);,(2)窗体中增加按钮(Button)控件的方法:,staticvoidMain()Application.Run(newForm1();/下边函数是单击按钮事件处理函数privatevoidbutton1_Click(objectsender,EventArgse)/单击按钮后执行的语句this.button1.Text=“单击了我”;,在窗体中增加控件类的对象的步骤:定义Button类变量button1在构造函数中用new生成Button类对象在构造函数中修改button1的属性增加button1的事件处理函数这些步骤对于增加任何控件都是相同的,结论:,3用VS2005创建Windows应用程序,【例】使用微软VS2005创建Windows应用程序的具体步骤如下:(1)运行VS2005程序,单击菜单“文件(F)|新建项目(P)”菜单项,打开“新建项目”对话框如下,单击“确定”按钮,创建项目。,单击菜单“文件(F)|全部保存(L)”菜单项,打开“保存项目”对话框如下,按图中那样填写,第一项是项目名。,(2)单击“确定”按钮,保存解决方案的所有文件。打开如下对话框。解决方案包括一个项目,解决方案的所有文件都保存到WindowsApplication7文件夹下。在WindowsApplication7文件夹中下有1个文件夹WindowsApplication7和文件WindowsApplication7.sln。打开WindowsApplication7文件夹,可以看到有3个文件夹和5个文件。,(3)下边在窗体中增加一个按钮,并为按钮增加单击事件函数。打开工具箱窗口,如下图。双击Button控件,Button控件将放到Form1窗体中。打开属性窗口,修改属性,打开事件窗口,增加事件。,工具箱窗口属性窗口事件窗口,4方案(Solution)和项目(Project),一个应用(Application)可能包括一个或多个可执行程序,所有这些可执行程序的集合叫做一个应用解决方案。为了生成一个可执行程序,可能需要有一个或多个文件,所有这些文件的集合叫一个项目,因此项目是为了创建一个可执行程序所必需的所有的文件的集合。而一个方案中可能包括多个项目。解决方案资源管理器窗口可以为我们显示一个解决方案的树形结构,树形结构中包含项目及项目中的文件。,各个文件夹和文件的用途如下:bin文件夹-保存编译后的程序obj文件夹保存临时文件Properties文件夹Form1.cs窗体文件-窗体代码文件Form1.Designer.cs窗体设计文件Program.CS程序入口,5WinForms程序文件夹及文件后缀名,Properties文件夹定义你程序集的属性项目属性文件夹一般只有一个AssemblyInfo.cs类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需要手动编写Bin文件夹目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性配置属性输出路径来修改。,文件夹,Obj文件夹目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性配置属性高级增量编译来设置。,.sln解决方案文件,为解决方案资源管理器提供显示管理文件的图形接口所需的信息。.csproj项目文件,创建应用程序所需的引用、数据连接、文件夹和文件的信息。.cs类模块代码文件。业务逻辑处理层的代码。,文件,designer.cs是窗体设计器生成的代码文件,作用是对窗体上的控件做初始化工作(在函数InitializeComponent()中)VS2003以前都把这部分代码放到窗体的cs文件中,由于这部分代码一般不用手工修改,在VS2005以后把它单独分离出来形成一个designer.cs文件与窗体对应。这样cs文件中剩下的代码都是与程序功能相关性较高的代码利于维护。,Form1.Designer.cs文件:namespaceProj8_1partialclassForm1/必需的设计器变量。/privateSystem.ComponentModel.IContainercomponents=null;/清理所有正在使用的资源。/如果应释放托管资源,为true;/否则为tectedoverridevoidDispose(booldisposing)/重写基类Dispose()方法if(disposing/调用基类的Dispose()方法,#regionWindows窗体设计器生成的代码/设计器支持所需的方法-不要/使用代码编辑器修改此方法的内容。/privatevoidInitializeComponent()/初始化方法this.button1=newSystem.Windows.Forms.button();this.button2=newSystem.Windows.Forms.button();this.SuspendLayout();/button1this.button1.Font=newSystem.Drawing.Font(宋体,9F,System.Drawing.FontStyle.Bold,System.Drawing.GraphicsUnit.Point,(byte)(134);this.button1.Location=newSystem.Drawing.Point(28,21);this.button1.Name=button1;this.button1.Size=newSystem.Drawing.Size(117,33);this.button1.TabIndex=0;this.button1.Text=调用模式窗体;this.button1.UseVisualStyleBackColor=true;this.button1.Click+=newSystem.EventHandler(this.button1_Click);,/button2this.button2.Font=newSystem.Drawing.Font(宋体,9F,System.Drawing.FontStyle.Bold,System.Drawing.GraphicsUnit.Point,(byte)(134);this.button2.Location=newSystem.Drawing.Point(28,69);this.button2.Name=button2;this.button2.Size=newSystem.Drawing.Size(117,33);this.button2.TabIndex=1;this.button2.Text=调用无模式窗体;this.button2.UseVisualStyleBackColor=true;this.button2.Click+=newSystem.EventHandler(this.button2_Click);/Form1this.AutoScaleDimensions=newSystem.Drawing.SizeF(6F,12F);this.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font;this.ClientSize=newSystem.Drawing.Size(169,128);this.Controls.Add(this.button2);this.Controls.Add(this.button1);this.Name=Form1;this.StartPosition=System.Windows.Forms.FormStartPosition.CenterScreen;this.Text=Form1;this.ResumeLayout(false);,/STAThread是一种线程模型,用在程序的入口方法上(在C#和VB.NET里是Main()方法),指示应用程序的默认线程模型是单线程单元(STA)。是STA。STAThreadstaticvoidMain()/程序运行在XP环境中能自动应用XP的主题样式Application.EnableVisualStyles();/使用GDI还是,false是GDI+,true是GDIApplication.SetCompatibleTextRenderingDefault(false);/运行启动窗体Application.Run(newForm1();,Program.CS,1、为什么要使用窗体,简单强大方便灵活,8.2Windows窗体概述,2什么是窗体,Windows操作系统中,处处是窗体,3、怎样创建Windows程序,在VS中创建Windows应用程序的步骤:1、打开VS2、新建项目3、项目类型:VisualC#项目4、模板:Windows应用程序,4、认识WinForms,项目名称,主程序文件,包含Main方法,我们编写代码的文件,解决方案名称,窗体设计器代码文件,代码为VS自动生成,5、Main方法,位于Program.cs文件Windows程序的入口,/Program.csnamespaceMyFormstaticclassProgram.staticvoidMain()Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newForm1();,Main方法,程序的入口,VS自动生成一般不需要理会,6、进一步认识窗体文件,WinForms窗体有两种编辑窗口:,窗体设计器窗口,窗体代码编辑窗口,?,7、为什么使用partial,具有双钥匙的密码箱,第一把钥匙,第二把钥匙,为了安全,两把钥匙分开放置,只有两把钥匙同时使用才能打开密码箱,用partial将同一个窗体的代码分开放在两个文件中:一个存放VS自动生成的代码一个存放我们自己编写的代码,程序员编写的代码,VS自动生成的代码,/Form1.Designer.csnamespaceMyFormpartialclassForm1/privatevoidInitializeComponent()/VS自动生成的代码this.ShowInTaskbar=false;this.Name=Form1;this.Text=Form1;this.TopMost=true;,运行时合到一起组成一个窗体文件,8、怎样使用partial,/Form1.csnamespaceMyFormpublicpartialclassForm1:FormpublicForm1()InitializeComponent();/我们编写的代码,构造函数做一些初始化的工作编译器自动调用,9、认识窗体类,/Form1.csnamespaceMyFormpublicpartialclassForm1:FormpublicForm1()InitializeComponent();,冒号表示继承Form类定义了窗体的基本属性和行为我们创建的窗体都继承自Form类Form1具有相应的属性和行为,Form类:.NET预定义的窗体类Form1继承自Form,10、窗体的重要属性,Name:窗体对象的名字,类似于变量的名字,BackColor:窗体的背景色,ShowInTaskBar:设置窗体是否出现在任务栏,StartPosition:窗体第一次出现时的位置,Text:窗体标题栏显示的文字,TopMost:设置窗体是否为最顶端的窗体,WindowState:窗体出现时最初的状态(正常、最大化、最小化),11、为什么使用事件,Windows系统中处处是事件:鼠标按下、鼠标释放、键盘键按下Windows系统通过事件处理来响应用户的请求,显示开始菜单,我的电脑窗口打开,事件触发,事件响应的结果,单击,双击,12、事件驱动,Windows通过随时响应用户触发的事件做出相应的响应事件驱动机制,我们需要做的:针对我们感兴趣的事件,编写相应的事件处理程序,WinForms应用程序也是事件驱动的,13、编写事件处理程序,编写事件处理程序的步骤:1、选中控件2、在“属性”窗口中单击3、找到事件4、生成事件处理方法5、编写处理代码,事件处理程序分析,/窗体的鼠标移动事件处理程序privatevoidForm1_MouseMove(objectsender,MouseEventArgse)this.Text=String.Format(捕捉到鼠标了!(0,1),e.X,e.Y);,示例中添加的事件处理程序:,this关键字代表窗体本身,鼠标的横纵坐标,窗体标题栏显示的文字,鼠标事件参数,事件源,14、窗体的重要事件,Load:窗体加载事件MouseClick:鼠标单击事件MouseDoubleClick:鼠标双击事件MouseMove:鼠标移动事件KeyDown:键盘按下事件KeyUp:键盘释放事件,窗体有哪些事件?,窗体上各事件的引发顺序当一个窗体启动时,执行事件过程的次序如下:(1)本窗体上的Load事件过程。(2)本窗体上的Activated事件过程。(3)本窗体上的其他Form级事件过程。(4)本窗体上包含对象的相应事件过程。一个窗体被卸载时,执行事件过程的次序如下:(1)本窗体上的Closing事件过程。(2)本窗体上的FormClosing事件过程。(3)本窗体上的Closed事件过程。(4)本窗体上的FormClosed事件过程。,当鼠标在窗体上点击时,窗体的背景色改变:如果是红色,变成黄色如果是黄色,变成绿色否则变成红色,提示:处理窗体的MouseClick事件利用Color类得到某种颜色:红色Color.Red绿色Color.Green黄色Color.Yellow窗体的背景色:this.BackColor判断背景色:if(this.BackColor=Color.Red),例,/鼠标单击事件privatevoidForm1_MouseClick(objectsender,MouseEventArgse)if(this.BackColor=Color.Red)this.BackColor=Color.Yellow;elseif(this.BackColor=Color.Yellow)this.BackColor=Color.Green;elsethis.BackColor=Color.Red;,15、窗体显示及分类,1、启动窗体将自动显示。2、显示一个非启动窗体,即由一个窗体调用显示另一个窗体需要创建另一个窗体的对象,再用Show()或ShowDialog()方法显示。Form1f=newForm1();/创建窗体的对象f.Show();/非模式窗体或f.ShowDialog();/模式窗体,窗体显示,1单文档窗体单文档窗体一次只能打开一个活动窗体,窗体间没有包含关系。(1)窗体间的跳转步骤:1、定义窗体对象2、显示窗体,窗体分类,定义窗体对象:,被调用的窗体类名窗体对象=new被调用的窗体类名();,显示窗体:,窗体对象.Show();,例:Form1f1=newForm1();f1.Show();,例:/非模式窗体Form1f1=newForm1();f1.Show();,(2)模式窗体和非模式窗体模式窗体指不关闭当前窗就不能切换到其它窗体。窗体显示用ShowDialog()方法。非模式窗体则可以在窗体间自由切换。窗体显示用Show()方法。,例:模式窗体Form1f1=newForm1();f1.ShowDialog();,(1)什么是MDI,在MDI应用程序中可以同时打开多个文件,父窗口,子窗口,2多文档窗体(MDI),(2)创建MDI示例,(3)怎样创建MDI,创建MDI的步骤:1、设置父窗体的IsMDIContainer属性2、设置子窗体的MdiParent属性,ChildFormchildForm=newChildForm();childForm.MdiParent=this;childForm.Show();,创建子窗体的对象,设置子窗体的父窗体,显示子窗体,建立子窗体窗口列表步骤:1、在父窗体中添加菜单条2、添加“窗口”菜单3、设置菜单控件的MdiWindowListItem属性,MDI中可以使用模式窗体吗?,52,8.3Windows窗体控件概述,Windows窗体是制作标准Win32屏幕的一种更高级的方法,具有非常健全的功能。.NETFramework中的所有语言都使用Windows窗体来代替它们在图形窗体中所使用的组件。在.NET下,Windows窗体为所有的语言提供了一套丰富的、统一的控件和绘图功能,以及用于图形和绘图底层Windows服务的标准API。有了Windows窗体,任何图形和屏幕函数就不再需要使用内置的Windows图形接口了。,Label:标签,lbl,TextBox:文本框,txt,ListBox:列表框,lst,ComboBox:组合框,cbo,GroupBox:分组框,grp,Panel:面板,pnl,RadioButton:单选按钮,rdo,Button:按钮,btn,1、常见窗体控件及命名习惯,2、常用基本属性1)Name:表示控件的名称。2)Enabled:表示控件是否可以对用户交互作出响应。3)Font:表示控件中显示文字的字体格式,包括字体名称、字号以及是否以斜体、加粗和下划线显示。4)BackColor:表示控件的背景色。5)ForeColor:表示控件的前景色。6)Image:表示控件上显示的图像。7)Location:这是一个复合属性,表示控件的左上角相对于其容器的左上角的坐标。8)Size:这是一个复合属性,表示控件的高度和宽度。9)Visible:表示是否显示该控件。,3、常用事件1)Click事件:单击该控件时触发。2)MouseEnter事件:鼠标进入控件区域内时触发。3)MouseDown事件:在控件区域内按下鼠标键时触发。4)MouseLeave事件:鼠标离开控件区域时触发。5)KeyPress事件:当用户按下又放开某个ASCII字符键时,会引发当前拥有焦点对象的KeyPress事件。6)KeyDown和KeyUp事件:KeyDown和KeyUp事件发生在用户按下键盘上某键时,通常可编写其事件代码以判断用户按键的情况。,4、控件焦点与Tab键次序焦点(Focus)是指当前处于活动状态的窗体或控件。,要将焦点移到当前窗体中的textBox1文本框,可以使用以下命令:textBox1.Focus();,1Button控件使用方法:1)从工具栏拖放一个button到窗体常用:1Text属性:显示控件文本信息例如:this.button1.Text=确定;2Click事件:单击鼠标左键时触发。例如:privatevoidbutton1_Click(objectsender,System.EventArgse)MessageBox.Show(this,“你点击了确定按钮。”,“提示信息”,MessageBoxButtons.OK,MessageBoxIcon.Information);,8.3基本控件,参数的含义:(1)objectsender:代表发出事件的对象,此处指button1。使用时可以直接用button1,也可以像下面形式:Buttonbutton=(Button)sender;(2)System.EventArgse:封装了事件的信息,3.MouseEnter事件:鼠标进入按钮区域时触发。例如:privatevoidbutton1_MouseEnter(objectsender,System.EventArgse)/颜色在System.Drawing名称空间下this.button1.BackColor=Color.Red;4.MouseLeave事件:鼠标离开按钮区域时触发。例如:privatevoidbutton1_MouseLeave(objectsender,System.EventArgse)this.button1.BackColor=SystemColors.Control;,2TextBox控件/RichTextBox控件常用:1Text属性:表示文本框中的当前文本。例如:this.textBox1.Text=abcd;2Multiline属性:表示是否可以包含多行内容。3MaxLength属性:表示用户可以在文本框控件中最多键入的字符数。4PasswordChar属性:用于屏蔽在单行文本框控件中输入的的密码字符。5、TextChanged事件:更改Text属性值时触发。例如:privatevoidtextBox1_TextChanged(objectsender,System.EventArgse)this.textBox2.Text=this.textBox1.Text;,/标题为求积的按钮的单击事件处理函数如下:privatevoidbutton1_Click(objectsender,EventArgse)floatss,ee;ss=Convert.ToSingle(textBox1.Text);ee=Convert.ToSingle(textBox2.Text);textBox3.Text=Convert.ToString(ss*ee);/标题为“清空”的按钮的单击事件处理函数如下:privatevoidbutton2_Click(objectsender,EventArgse)textBox1.Text=;textBox2.Text=;textBox3.Text=;,6、KeyPress事件:输入时按键触发。一般用于监控键盘的输入字符,可以用来限制键盘输入字符,如数字,可打印字符等。,privatevoidtextBox1_KeyPress(objectsender,KeyPressEventArgse)/限制键盘输入只能输入数字和退格键if(!(e.KeyChar=48,例,3Label控件和LinkLabel控件Label控件通常用于提供控件或窗体的描述性文字,以便为用户提供有帮助作用的信息。1.Label控件常用的基本属性Text属性:表示显示的文本内容。2.操作示例LinkLabel控件与Label控件非常相似,不同的是它可以显示超级链接。当用户单击LinkLabel控件时,会触发LinkClicked事件,可以在LinkClicked事件中编写代码链接到指定的网页。,4ImageList控件,ImageList控件提供一个集合,可以用于存储在窗体的其他控件中使用图像。可以在图像列表中存储任意大小的图像,但在每个控件中,每个图像的大小必须相同。对于后面要介绍的ListView控件,则需要两个ImageList控件才能显示大图像和小图像。ImageList是一个不在运行期间显示它本身的控件。在把它拖放到正在开发的窗体上时,它并不是放在窗体本身上,而是在窗体的下面,其中包含该控件所有的组件。这个功能可以防止不是用户界面一部分的控件遮挡窗体设计器。这个控件的处理方式与其他控件相同,但不能移动它。,66,PictureBox控件是用于显示图像的,它与ImageList控件不同,在Windows窗体运行时,它所使用的图像将被显示出来。,67,5PictureBox控件,常用属性有:1Image:在PictureBox中显示的图像。2SizeMode:图片在控件中的显示方式。其属性有:AutoSize:调整控件PictureBox大小,使其等于所包含的图像大小。CenterImage:如果控件PictureBox比图像大,则图像将居中显示。如果图像比控件大,则图片将居于控件中心,而外边缘将被剪裁掉。Normal:图像被置于控件的左上角。如果图像控件大,则超出部分被剪裁掉。StretchImage:控件中的图像被拉伸或收缩,以适合控件的大小。,例:第一步:向窗体上拖放一个PictureBox控件,一个Label控件,分别调整为适当大小。第二步:设置pictureBox1的Image属性,将一个图片放入控件内。然后修改SizeMode属性,观察效果。第三步:添加下列事件:privatevoidpictureBox1_MouseMove(objectsender,System.Windows.Forms.MouseEventArgse)this.label1.Text=string.Format(“鼠标在PictureBox中的位置:x=0,y=1,e.X,e.Y);第四步:运行,在图片内移动鼠标,观察结果。,6RadioButton控件,单选按钮是以他们所在的容器划分组的,直接在Form上放置的单选按钮将自动成为一组,这时Form就是容器,当选中容器中的一个单选按钮时,其他的将自动撤销选中。如果要在一个Form上创建多个单选按钮组,则需要使用GroupBox或者Panel控件作为容器。,常用:(1)Text属性(2)Checked属性(3)CheckedChanged事件,第一步:设计窗体。,例,第二步:添加下列代码:privatevoidradioButton_CheckedChanged(objectsender,System.EventArgse)RadioButtoncheck=(RadioButton)sender;if(check.Checked)this.textBox1.Text=check.Text;第三步:将三个RadioButton控件的CheckedChanged触发事件均选择为radioButton_CheckedChanged。第四步:运行,观察结果。,一般在下列情况下使用复选框:响应用户对复选框的选择,动态改变界面上其它控件的状态。访问复选框的状态,执行不同的操作。常用:(1)Text属性:表示与复选框控件关联的文本。(2)Checked属性:表示复选框是否处于选中状态。(3)CheckedChanged事件:表示当Checked属性值更改时触发的操作。,7CheckBox控件控件,例:,第二步:在Form2类中,直接添加方法checkBox_CheckedChanged,该方法的功能是当选中某个复选框时,该复选框的文字会变为绿色。privatevoidcheckBox_CheckedChanged(objectsender,System.EventArgse)CheckBoxcheckbox=(CheckBox)sender;if(checkbox.Checked)checkbox.ForeColor=Color.Green;elsecheckbox.ForeColor=Color.Black;第三步:将三个CheckBox控件的CheckedChanged触发事件均选择为checkBox_CheckedChanged。,第一步:在工程中添加一新窗体Form2,设计画面如图:,第四步:添加button1按钮的Click事件代码。privatevoidbutton1_Click(objectsender,System.EventArgse)stringstr=选择结果:;str+=(this.checkBox1.Checked=true)?(this.checkBox1.Text+、):;str+=(this.checkBox2.Checked=true)?(this.checkBox2.Text+、):;str+=(this.checkBox3.Checked=true)?(this.checkBox3.Text+、):;if(strstr.Length-1=、)str=str.Substring(0,str.Length-1);MessageBox.Show(str);第五步:直接执行窗体Form2的方法。当执行项目时,C#会自动调用窗体Form1,此处示例不需执行Form1,而希望执行窗体Form2,为了能够直接调用窗体Form2,必须在Form1类中找到Main方法,对其进行修改:staticvoidMain()Application.Run(newForm2();,当选项比较多时,或者在运行时动态的决定有哪些选项时,可以使用这种控件。常用:(1)Items属性:表示控件对象中所有项的集合。(2)MultiColumn属性:表示控件对象是否支持多列。(3)ColumnWidth属性:表示控件对象支持多列时,列的宽度。(4)CheckOnClick属性:表示当选定某项时是否应同时改变复选框状态。(5)Sorted属性:表示控件对象中各项是否按字母有序。(6)CheckedItems属性:表示控件对象中选中项的集合。(7)CheckedIndices属性:表示控件对象中选中索引的集合。,8CheckedListBox控件,第一步:设计界面,添加Items属性选项:“足球篮球排球乒乓球羽毛球拳击体操射击跑步逛街象棋围棋跳棋军旗五子棋拱猪双升其它”。,例:,第二步:添加button1按钮的Click事件代码:privatevoidbutton1_Click(objectsender,System.EventArgse)stringstr=选择结果:;for(inti=0;i=0;i-)this.listBox1.Items.Remove(listBox1.SelectedItemsi);思考:将上述代码改为for(inti=0;i=0)/将左列表框中选中项移到右列表框中listBox2.Items.Add(listBox1.SelectedItem);listBox1.Items.RemoveAt(listBox1.SelectedIndex);enbutton();/调用enbutton()方法privatevoidbutton2_Click(objectsender,EventArgse)foreach(objectiteminlistBox1.Items)/将左列表框中所有项移到右列表框中listBox2.Items.Add(item);listBox1.Items.Clear();enbutton();/调用enbutton()方法,privatevoidbutton3_Click(objectsender,EventArgse)if(listBox2.SelectedIndex=0)/将右列表框中选中项移到左列表框中listBox1.Items.Add(listBox2.SelectedItem);listBox2.Items.RemoveAt(listBox2.SelectedIndex);enbutton();/调用enbutton()方法privatevoidbutton4_Click(objectsender,EventArgse)foreach(objectiteminlistBox2.Items)/将右列表框中所有项移到左列表框中listBox1.Items.Add(item);listBox2.Items.Clear();enbutton();/调用enbutton()方法,运行界面,这种控件有两部分组成,即一个文本框和一个列表框。文本框可以用来显示当前选中的条目,如果文本框可以编辑,则可以直接输入选择的条目。单击文本框旁边带有向下箭头的按钮,则会弹出列表框,使用键盘或者鼠标可以在列表框中选择条目。常用属性:1Text属性、Items属性、DropDownStyle属性。其中DropDownStyle属性有:Simple:同时显示文本框和列表框,文本框可以被编辑。DropDown:只显示文本框,需要通过键盘或者鼠标打开列表框,文本框可以被编辑。DropDownList:只显示文本框,需要通过键盘或者鼠标打开列表框,文本框不可以被编辑。2SelectedIndexChanged事件选择项发生改变时触发该事件。,10ComboBox控件,第一步:设计窗体。,例:,第二步:添加comboBox1的SelectedIndexChanged事件。privatevoidcomboBox1_SelectedIndexChanged(objectsender,System.EventArgse)if(boBox1.SelectedIndex-1,第三步:添加comboBox2的SelectedIndexChanged事件。privatevoidcomboBox2_SelectedIndexChanged(objectsender,System.EventArgse)if(boBox1.SelectedIndex-1第四步:运行,修改小组和项目选项,观察ListBox中内容的变化。,该控件的用途是当鼠标位于某个控件上并停留一段时间后,显示该控件功能的提示信息。使用方法:向窗体拖放一个该控件,其它控件的属性里将添加一个ToolTip属性,键入提示文本即可。主要属性有:Active:指示该控件当前是否处于激活状态。AutomaticDelay:设置经过多长时间显示提示信息,缺省值为500ms。AutoPopDelay:设置鼠标指针停留多长时间后消失提示信息。例如:向6.1.7例子中的设计窗体拖放一个ToolTip控件,然后在构造函数中加入下列代码:this.toolTip1.SetToolTip(boBox1,选择参加的小组。);this.toolTip1.SetToolTip(boBox2,选择左边小组参加的项目。);this.toolTip1.SetToolTip(this.listBox1,各小组参加的项目列表。);运行,分别将鼠标在上述控件中停留一段时间,观察显示的提示信息。,11ToolTip控件,MenuStrip控件主要用于生成所在窗体的主菜单。用符号“richTextBox1.Clear();richTextBox1.Focus();privatevoid打开OToolStripMenuItem_Click(objectsender,EventArgse)richTextBox1.Enabled=true;richTextBox1.LoadFile(p:vcsharp2005chapter5source.rtf,RichTextBoxStreamType.RichText);privatevoid保存SToolStripMenuItem_Click(objectsender,EventArgse)/将文本框的内容保存为p:vcsharp2005chapter5source.rtf,并清除文本框中的内容给出提示信息richTextBox1.SaveFile(p:vcsharp2005chapter5source.rtf,RichTextBoxStreamType.RichText);richTextBox1.Clear();MessageBox.Show(文件已保存于source.rtf!);/使打开菜单项可用,用于打开文件source.rtf打开OToolStripMenuItem.Enabled=true;,privatevoid剪切TToolStripMenuItem_Click(objectsender,EventArgse)richTextBox1.Cut();privatevoid复制CToolStripMenuItem_Click(objectsender,EventArgse)richTextBox1.Copy();privatevoid粘贴PToolStripMenuItem_Click(objectsender,EventArgse)richTextBox1.Paste();privatevoid全选AToolStripMenuItem_Click(objectsender,EventArgse)richTextBox1.SelectAll();privatevoid帮助HToolStripMenuItem_Click(objectsender,EventArgse)MessageBox.Show(正在建设中.);privatevoid退出XToolStripMenuItem_Click(objectsender,EventArgse)this.Close();,(4)按键编译并运行,尝试利用主菜单对文件进行各种编辑操作。,程序运行初始界面,单击“文件”菜单,单击“打开”命令,打开“source.rtf”文件,进行剪切操作,进行“粘贴”操作,13ContextMenuStrip控件,ContextMenuStrip控件的功能是制作右键快捷菜单。注意:该控件是用于为其他控件服务的,不能单独使用。当向窗体中添加一个ContextMenuStrip控件,会在窗体顶端出现与MenuStrip控件相似的菜单栏,所以也就不能在菜单栏上添加任何菜单项,只能在子菜单中编辑各菜单项。编辑完成的ContextMenuStrip控件需要在窗体或相关控件的ContextMenuStrip属性中与其建立关联,才可以在程序运行时用鼠标右键单击对应控件,弹出该快捷菜单。,1、常用的基本属性(1)Items属性:用于编辑快捷菜单上的各菜单项。其编辑方式与MenuStrip控件的菜单项编辑相似,都是调用项集合编辑器对话框来生成菜单项的。(2)Opacity属性:设置快捷菜单的透明度。取值范围为0%100%,默认值为100%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东湘桥区八下数学试卷
- 海南高三数学试卷
- 河北历届高考数学试卷
- 河南新高一数学试卷
- 河北省高三二模数学试卷
- 贵溪奥科6年级数学试卷
- 江苏高二上期中数学试卷
- 呼和浩特市大一数学试卷
- 第2课 古代两河流域 课件 人教版部编历史九年级上册
- 国际高中英语版数学试卷
- 职业技术学院《畜牧场设备使用与维护》课程标准
- 2025中国汽车行业趋势报告-2025-04-市场解读
- 医院殡葬领域腐败乱象专项整治工作方案
- 丙烯酸酯行业发展趋势与未来市场机会解析
- 良品铺子合同协议
- 数字化转型背景下企业战略调整案例分享
- 实验室安全操作培训内容
- 第五讲-铸牢中华民族共同体意识-2024年形势与政策(讲稿)
- 道路标线施工组织设计方案
- 平板型无纸化智能会议系统技术方案
- 中级消防设施操作员证培训项目服务方案
评论
0/150
提交评论