测量程序设计实习报告姓名:班级:学号:教师评语:日期:二零一五年十月实验名称:使用C#开发环境建立测量程序框架一、实验的目的与任务:(1)学会用C#窗体程序开发环境建立应用程序框架方法(2)学会使用常见的Windows控件(3)根据自身需要设计一个测量程序界面二、实验的过程与步骤:启动程序,选择C#开发设置新建项目以学号命名进入集成开发环境:要求掌握利用C#程序开发平台掌握windows窗体开发程序的步骤。所有控件均有name属性,利用name属性可调用控件。掌握以下控件的使用方法:按钮控件按钮(Button)是用户以交互方式控制程序运行的控件之一主要属性:(1)Text属性设置显示在按钮表面上的文字,用于说明该按钮的作用。如果Text属性值为“开始(&S)”,程序运行时当用户按下组合键Alt+S的时候,相当于鼠标单击这个按钮。(2)Enabled属性设置按钮是否可用;程序运行期间Enabled属性值为False时,按钮表面将显示成暗淡字体的样式,这时按钮暂时不起作用(这样做的目的通常是为了防止误操作)(3)Visible属性设置按钮的可见性,Visible属性值为True时,按钮是可见的;Visible属性值为False时,按钮不可见。文本控件标签(Label)、文本框(TextBox)和富文本框(RichTextBox)1.LabelLabel控件主要用于通过其Text属性显示文本信息程序设计时一般只使用其属性,常用属性如下:属性意义默认值Text标签中显示的文本内容控件名称Font显示文本的字体、字号和字形父控件的Font属性BackColor背景颜色Transparent(透明)ForeColor前景颜色,即显示文本的颜色ControlText(控件颜色)BorderStyle边框样式None(无边框)Image标签的背景图片无AutoSize根据文字的内容多少和字号大小自动调整自身的尺寸TrueEnabled控件是否可用TrueVisible控件是否可见True例:创建如下图所示窗体程序,程序运行时显示简单的文本信息。2.TextBox控件程序运行期间,通过它的Text属性既可显示文本信息,又可以让用户通过键盘、鼠标等在文本框中直接输入并修改文字信息,还可以在文本框中使用剪切、复制、粘贴等操作。属性意义Text输入到文本框中的字符PasswordChar用来替换在单行文本框中输入文本的密码字符(仅在Multiline为False时有效)Multiline若为True,则允许用户输入多行文本信息privatevoidbutton1_Click(objectsender,EventArgse){label1.BackColor=Color.Transparent;label1.ForeColor=Color.Tomato;label1.Text=欢迎进入C#Windows窗体程序设计广阔天地!;}ScrollBars当Multiline属性为True时,指定文本框是否显示滚动条WordWrap当Multiline属性为True,并且一行的宽度超过文本框宽度时,是否允许自动换行MaxLength允许输入到文本框中的最大字符数,默认值为32767SelectedText文本框中被选择的文本(程序运行时设置)SelectionLength被选中文本的字符数(程序运行时设置)SelectionStart文本框中被选中文本的开始位置(程序运行时设置)ReadOnly设置文本框是否为只读,默认值为FalseCharacterCasing是否自动改变输入字母的大小写,默认值为Normal,其余选项有Lower和UpperCausesValidation若设置为True(默认值),控件获得焦点时,将会触发Validating和Validated事件事件意义Enter成为活动控件时发生GetFocus控件获得焦点时发生(在Enter事件之后发生)Leave从活动控件变化不活动控件时发生Validating在控件验证时发生Validated在成功验证控件后发生LostFocus控件失去焦点后发生(在Leave事件之后发生)KeyDown文本框获得焦点,并且有键按下时发生KeyPress文本框获得焦点,并且有键按下然后释放时发生(在KeyDown事件之后发生)KeyUp文本框获得焦点,并且有键按下然后释放时发生(在KeyPress事件之后发生)TextChanged文本框内的文本信息发生改变时发生方法意义AppendText()在文本框当前文本的末尾追加新的文本Clear()清除文本框中的全部文本Copy()将文本框中被选中的文本复制到剪贴板Cut()将文本框中被选中的文本移动到剪贴板Paste()将剪贴板中的文字内容复制到文本框中从当前位置开始的地方,但不清除剪贴板Focus()将文本框设置为获得焦点Select()在文本框中选择指定起点和长度的文本SelectAll()在文本框中选择所有的文本DeselectAll()取消对文本框中所有文本的选择(1)Multiline属性和WordWrap属性Multiline属性为False,文本框的高度无法改变,只能输入单行文本。Multiline属性为True,文本框内可以输入多行文本,当文本长度超过文本框宽度并且WordWrap属性为True时,可以自动换行。按Enter键可以强制换行。(演示)(2)ScrollBars属性(演示)决定文本框是否带有滚动条,有4个选项:None没有滚动条Horizontal只有水平滚动条Vertical只有垂直滚动条Both同时拥有水平滚动条和垂直滚动条(3)SelectionLength、SelectionStart、SelectedText属性这三个属性只能程序运行期间设置,用来标识用户在文本框内选中的文字,程序运行期间,用户可以通过在文本框内的鼠标、键盘操作,设置这三个属性的值,也可以通过赋值语句为它们赋值。设置了SelectionStart和SelectionLength属性之后,被选中的文字就会自动地保存到SelectedText属性中。(演示)(4)PassWordChar属性当文本框用来接收输入的密码时,为了避免旁观者在界面上看到密码原文,可以用PassWordChar属性来设置替代显示字符,PasswordChar属性仅当MultiLine属性为False时才有效。(演示)(5)TextChanged事件用户向文本框输入新的内容,或程序对文本框的Text属性赋值,从而改变Text属性原值时,将触发TextChanged事件。用户每输入一个字符,就会触发一次TextChanged事件。(6)KeyPress、KeyDown、KeyUp事件当文本框获得焦点时,用户按下并释放键盘上的某个字符键,就会触发KeyPress事件,并返回一个参数KeyPressEventArgse到该事件过程中,e.KeyChar属性即该键所代表的Unicode码。KeyDown和KeyUp事件返回到事件过程的参数是KeyEventArgse,其中e.KeyValue属性代表的是键位置码。键盘上的每个键都有自己的键位置码,包括那些不会产生Unicode码的键(如Shift、Alt、Ctrl等)。(7)焦点事件一个窗体上可以载有多个控件,但任何时刻最多只允许一个控件能够接受用户的交互操作。这个能接受交互操作的控件称为“拥有焦点”。鼠标单击窗体上的某个控件,可以使它获得焦点;利用键盘上的Tab键,可以使焦点在不同对象之间按TabIndex属性指定的顺序依次转移(如果某个对象的TabStop属性设置为False,利用Tab键转移焦点时将跳过该对象)。当文本框获得焦点时,将触发Enter事件;失去焦点时,将依次触发Leave事件、Validating事件、Validated事件和(文本框的操作中可以利用这些事件过程来对数据更新进行验证和确认)。(演示)(8)Copy()、Cut()、Paste()方法复制、剪切、粘贴是文本编辑中最常用到的方法。Copy()方法:把文本框中被选择的文本复制到剪贴板;Cut()方法:把文本框中被选择的文本移动到剪贴板,文本框中原先被选择的文本被删除;Paste()方法:将剪贴板中的文字粘贴到文本框中;例:创建如下图所示的Windows窗体程序,程序运行在文本框txtSour中输入若干文字信息,然后用鼠标选择其中的一段文字,选择之后,单击“复制”按钮将被选中的文字复制到txtTarg中。代码如下:选择控件和分组控件1.单选按钮(RadioButton)(1)Checked属性表示单选按钮是否已被选中;选中时Checked属性值为true;未选中时Checked属性值为False。当一个单选按钮被选中时,同一组内的其它单选按钮均为未选中状态。(2)Appearance属性用来指定单选按钮的外观。值为Normal时外观为圆形;值为Button时外观显示成按钮的形状,被选中时显示为按下状态,未选中时为弹起状态。(3)CheckedChanged事件用户在一组单选按钮中改变原先选中对象时,触发该事件;(4)Click事件每次单击单选按钮时,都会触发Click事件。如果连续多次单击同一个单选按钮,最多只能改变Checked属性一次。2.复选框(CheckBox)(1)CheckState属性复选框有3种状态:(选中)CheckState属性值为Checked(未选中)CheckState属性值为Unchecked(无效)CheckState属性值为Indeterminate一组逻辑功能相关的复选框中,允许任意数量的复选框被选中,甚至全部选中,或者全部不选。一个复选框被选中与否,对同一组内的其它复选框状态没有任何影响。(2)ThreeState属性privatevoidbutton1_Click(objectsender,EventArgse){textBox1.Copy();textBox2.Paste();}ThreeState属性值为true时,允许复选框的CheckState属性有上述3种状态;当属性置为false时,CheckState属性就只能有Checked(选中)和Unchecked(未选中)两种状态。(3)CheckedChanged事件当复选框的Checked属性改变时,就会触发该事件。但当ThreeState属性值为true时,单击复选框不会改变Checked属性。3.群组框控件(GroupBox)的“容器”作用窗体上绘制一个GroupBox控件,然后在它的边框线以内绘制单选按钮或其它控件,就把它们装入了同一个容器。窗体上的空白位置创建控件,然后把它拖放到GroupBox的边框线内,也可以将其装入同一个容器。设计阶段判断一个控件是否装入GroupBox的最简单方法,就是在窗体上拖动GroupBox。如果线框内的控件跟随移动,则说明它确实装入了GroupBox。装入同一个GroupBox的单选按钮,就构成了一个逻辑上独立的组,单击其中的任意一个单选按钮,使其处于选中状态,组内的其它对象均处于未选中状态,对它们的操作不会影响到当前GroupBox以外的单选按钮。列表选择控件列表选择控件用来实现较多个选项的交互式选择操作。列表框(ListBox)、复选列表框(CheckedListBox)、组合框(ComboBox)1.列表框(ListBox)列表框以列表形式显示多个数据项,供用户选择。用户只能从列表中选择已有的数据项,而不能直接修改其中的内容。如果列表中的数据项较多,超过设计时给定的长度,不能一次全部显示,就会自动添加滚动条。属性意义Items列表框中所有选项的集合,利用这个集合可以增加或删除选项SelectedIndex列表框中被选中项的索引(从0起算)。当多项被选中时,表示第一个被选中的项SelectedIndices列表框中所有被选中项的索引(从0起算)集合SelectedItem列表框中当前被选中的选项。当多个选项被选中时,