C语言界面设计经典教程ppt课件

上传人:钟*** 文档编号:5883252 上传时间:2020-02-10 格式:PPT 页数:220 大小:5.79MB
返回 下载 相关 举报
C语言界面设计经典教程ppt课件_第1页
第1页 / 共220页
C语言界面设计经典教程ppt课件_第2页
第2页 / 共220页
C语言界面设计经典教程ppt课件_第3页
第3页 / 共220页
点击查看更多>>
资源描述
第9章Windows应用程序设计基础 1 C 是一种可视化的程序设计语言 Windows窗体和控件是开发C 应用程序的基础 窗体和控件在C 程序设计中扮演着重要的角色 在C 中 每个Windows窗体和控件都是对象 都是类的实例 窗体是可视化程序设计的基础界面 是其他对象的载体和容器 控件是添加到窗体对象上的对象 每个控件都有自己的属性 方法和事件以完成特定的功能 Windows应用程序设计还体现了另外一种思维 即对事件的处理 2 本章将介绍建立Windows应用程序 使用WindowsForms常用控件 菜单和多文档界面设计等 同时向大家展示用Windows窗体来编写程序的特点以及技巧 3 9 1Windows应用程序的结构 VS NET集成开发环境是基于 NETFramework构建的 该框架提供了一个有条理的 面向对象的 可扩展的类集 它使用户得以开发丰富的Windows应用程序 通过Windows 窗体设计器 进行设计窗体 用户就可以创建Windows应用程序和客户机 服务器应用程序 用户可对窗体设定某些特性并在其上添加控件 然后编写代码以增加控件和窗体的功能 4 9 1Windows应用程序的结构 VS NET提供了很多工具可以使应用程序的开发快捷 可靠 这些工具包括 Windows窗体可视化设计器 识别代码编辑器 集成的编译和调试 项目管理工具 5 9 1Windows应用程序的结构 典型的Windows应用程序通常包括窗体 Forms 控件 Controls 和相应的事件 Events 下面通过C 设计实现一个简单的计算器 要求能够实现基本的加 减 乘 除功能 并以这个 计算器 为例 来了解和掌握Windows应用程序的一般开发过程 6 9 1 1计算器窗体 Windows窗体就是创立Windows应用程序的框架 在VS NET中创建Windows应用程序的第一步就是建立这个框架 操作步骤如下 1 运行VS NET 在 起始页 上单击 新建项目 按钮 打开 新建项目 对话框 如图9 1所示 在 项目类型 列表框中指定项目的类型为 ViusalC 在 模板 列表框中选择 Windows应用程序 模板 在 名称 文本框中输入Calculator 在 位置 下拉列表中选定保存项目的位置 7 9 1 1计算器窗体 2 单击 确定 按钮后就进入VS NET的主界面 如图9 2所示 从图9 2可以看出 当选择 Windows应用程序 作为应用程序的模板后 系统会自动为用户生成一个空白窗体 一般名为Form1 该窗体就是应用程序运行时显示给用户的操作界面 下一步就是向窗体中添加各种控件 8 9 1 2计算器控件 控件表示用户和程序之间的图形化连接 控件可以提供或处理数据 接受用户输入 对事件做出响应或执行连接用户和应用程序的其他功能 因为控件本质上是具有图形接口的组件 所以它能通过组件所提供的功能并与用户交互 窗体中的控件有很多 工具箱 中的 Windows窗体 里包含了所有Windows的标准控件 用户还可以根据需要自己定义控件 通过在 属性 窗口中改变控件的属性可以改变的外观和特性 9 9 1 2计算器控件 本例中需要用到如下所列的控件 1 按钮 16个 10个数字按钮分别用于表示0 9 4个运算符按钮表示 1个 计算 按钮用于实施计算操作 1个 清空 按钮用于清除上次计算结果 2 标签 1个 用于标示计算结果所在的文本框 3 文本框 1个 用于显示计算结果 10 9 1 2计算器控件 具体添加控件步骤如下 首先向窗体中添加按钮 Button 具体操作为 在工具箱中单击Button 然后移动鼠标指针到窗体中的预定位置 按下左键拖动鼠标 划出一个方框 释放鼠标左键后 一个按钮就被添加到刚才方框的位置了 调整好大小和位置后单击选中该按钮 在 属性 窗口中可以看到该控件名为Button1 将该按钮的Text属性设置为 1 继续在窗体中添加其余15个按钮 并分别设置好它们的属性 11 9 1 2计算器控件 界面设计已经完成了 接下来的事情就是为各个控件添加相应的事件代码了 按照同样的方法在窗体中添加一个标签 Label 设置其Text属性为 结果 再添加一个文本框 TextBox 并设置其Text属性为空 最后 一个简单的计算器的界面就完成了 如图9 3所示 12 9 1 3计算器事件 在C 中 基于Windows应用程序设计方法是事件驱动的 事件驱动不是由程序的顺序来控制的 而是由事件的发生来控制的 事件驱动程序设计是围绕着消息的产生与处理而展开的 消息就是关于发生的事件的信息 Windows程序员的工作就是对所开发的应用程序所要发出或者接收的消息进行排序和管理 事件驱动程序方法提供了许多便利 对于那些需要大范围用户干预的应用程序来说 更是很有用处 13 9 1 3计算器事件 在 窗体设计器 中看到的是窗体及其中的控件 而要为控件添加事件处理程序就必须先切换到代码编辑器状态 切换到代码编辑器有以下几种方法 1 双击窗体或者某控件 2 在解决方案资源管理器中右键单击Form1 cs 从快捷菜单中选择 查看代码 命令 如果选择 视图设计器 则可以回到 窗体设计器 中 3 当第一次切换到代码编辑器之后 在窗体标题 Form1 cs 设计 的左边会自动出现一个新的标题 Form1 cs 单击该标题就可以切换到代码编辑器 反之 如果单击 Form1 cs 设计 则会切换到 窗体设计器 14 9 1 3计算器事件 下面分析一下计算器中各个控件到底应该添加什么样的代码 对于计算器来说 当单击某个数字键后 结果显示区内应显示该键上的数字 因此 可以双击按钮 1 切换到代码编辑器 此时光标就停留在该按钮所对应的代码处 输入下列代码 privatevoidbtn1 Click objectsender EventArgse Buttonbtn Button sender textBox1 Text btn Text 15 9 1 3计算器事件 继续给其他数字按钮添加同样的代码 然后给4个运算符按钮添加下列代码 privatevoidbtnAdd Click objectsender EventArgse Buttonbtn Button sender textBox1 Text textBox1 Text btn Text 空格用于分隔数字各运算符 16 9 1 3计算器事件 privatevoidbtnSub Click objectsender EventArgse Buttonbtn Button sender textBox1 Text textBox1 Text btn Text 空格用于分隔数字各运算符 privatevoidbtnMul Click objectsender EventArgse Buttonbtn Button sender textBox1 Text textBox1 Text btn Text 空格用于分隔数字各运算符 17 9 1 3计算器事件 privatevoidbtnDiv Click objectsender EventArgse Buttonbtn Button sender textBox1 Text textBox1 Text btn Text 空格用于分隔数字各运算符 接下来给 清空 按钮添加如下代码 privatevoidbtnClear Click objectsender EventArgse textBox1 Text 18 9 1 3计算器事件 最后给 计算 按钮添加下列代码 privatevoidbtnCalculate Click objectsender EventArgse Singler 用于保存计算结果stringt textBox1 Text t用于保存文本框中的算术表达式intspace t IndexOf 用于搜索空格位置strings1 t Substring 0 space s1用于保存第一个运算数charop Convert ToChar t Substring space 1 1 op用于保存运算符strings2 t Substring space 3 s2用于保存第二个运算数Singlearg1 Convert ToSingle s1 将运算数从string转换为SingleSinglearg2 Convert ToSingle s2 19 9 1 3计算器事件 switch op case r arg1 arg2 break case r arg1 arg2 break case r arg1 arg2 break 20 9 1 3计算器事件 case if arg2 0 thrownewApplicationException else r arg1 arg2 break break default thrownewApplicationException 21 9 1 3计算器事件 将计算结果显示在文本框中textBox1 Text r ToString 现在 所有的工作都完成了 在 调试 菜单中选择 启动 命令或者 开始执行 不调试 命令运行该应用程序 计算器可以工作了 22 9 2Windows窗体 通过 计算器 这个例子 已初步了解了Windows应用程序的结构 下面具体介绍Windows应用程序的设计和开发 一个应用程序除了需要实现应有的功能外 还必须具有良好的用户界面 在C 中 Windows应用程序的界面是以窗体 Form 为基础的 窗体是Windows应用程序的基本单位 用来向用户展示信息和接受用户的输入 窗体可以是标准窗口 多文档界面 MDI 窗口 对话框的显示界面 23 9 2Windows窗体 窗体就好像一个容器 其他界面元素都可以放置在窗体中 C 中以类Form来封装窗体 一般来说 用户设计的窗体都是类Form的派生类 用户窗体中添加其他界面元素的操作实际上就是向派生类中添加私有成员 当新建一个Windows应用程序项目时 C 就会自动创建一个默认名为Form1的Windows窗体 24 9 2Windows窗体 Windows窗体由以下4部分组成 标题栏控制按钮边界窗口区 25 9 2 1Windows窗体的基本属性 Windows窗体的属性可以决定窗体的外观和行为 其中常用的属性有 名称 Name 属性 标题 Text 属性 控制菜单属性和影响窗体外观的属性 1 窗体的名称属性 Name Name用于设置窗体的名称 该属性值作为窗体的标志 用于在程序中引用窗体 在初始新建一个Windows应用程序项目时 自动创建一个窗体 该窗体的名称被自动命名为Form1 添加第2个窗体时 其名称被自动命名为Form2 依次类推 通常而言 在设计Windows窗体时 可给其Name属性设置一个有实际含义的名字 26 9 2 1Windows窗体的基本属性 2 窗体的标题属性 Text Text属性用于设置窗体标题栏显示的内容 它的值是一个字符串 通常 标题栏显示的内容应能概括地说明窗体的内容或作用 例如 对于一个登录窗体 其栏题栏设置为 欢迎登录 27 9 2 1Windows窗体的基本属性 3 窗体的控制菜单属性在C 应用程序中的Windows窗体 一般都显示控制菜单 以方便用户的操作 1 ControlBox属性 该属性用来设置窗体上是否有控制菜单 其默认值True 窗体上显示控制菜单 若将该属性设置为False 则窗体上不显示控制菜单 如图9 4所示 28 9 2 1Windows窗体的基本属性 2 MaximizeBox属性 用于设置窗体上的最大化按钮 其默认值True 窗体上显示最大化按钮 若将该属性设置为False 则窗体上不显示最大化按钮 3 MinimizeBox属性 用于设置窗体上的最小化按钮 其默认值True 窗体上显示最小化按钮 若将该属性设置为False 则窗体上不显示最小化按钮 29 9 2 1Windows窗体的基本属性 4 设置窗体外观的属性 1 FormBorderStyle属性 用于控制窗体边界的类型 它有7个可选值 可选值说明如表9 1所示 30 9 2 1Windows窗体的基本属性 2 Size属性 用来设置窗体的大小 3 Location属性 设置窗体在屏幕上的位置 即设置窗体左上角的坐标值 4 BackColor属性 用于设置窗体的背景颜色 可以从弹出的调色板中选择 31 9 2 1Windows窗体的基本属性 5 BackgroundImage属性 用于设置窗体的背景图像 6 Opacity属性 该属性用来设置窗体的透明度 5 设置窗体可见性的属性窗体的可见性由Visible属性来控制 32 9 2 2创建窗体 通常 在开发项目时 一个窗体往往不能满足 通常需要用到多个窗体 C 提供了多窗体处理能力 在一个项目中可创建多个窗体 添加新窗体的方式如下 1 选择项目菜单下的 添加Windows窗体 命令 打开 添加新项 对话框 如图9 5所示 33 9 2 2创建窗体 2 在 添加新项 对话框的模板框内 选择 Windows窗体 模板 然后 单击 打开 按钮 就添加一个新的Windows窗体 完成添加窗体后 在解决方案资源管理器窗口中双击对应的窗体 则在Windows窗体设计器中 可显示该窗体 34 9 2 3设置启动窗体属性 当在应用程序中添加了多个窗体后 默认情况下 应用程序中的第一个窗体被自动指定为启动窗体 在应用程序开始运行时 此窗体就会首先显示出来 如果想实现在应用程序启动时 显示别的窗体 那么就要设置启动窗体 如何实现设置启动窗体 请看例9 1 例9 1 C 设置启动窗体 步骤如下 1 在一个项目中 添加两个窗体 35 9 2 3设置启动窗体属性 2 在解决方案中 有一个Program cs文件 双击此文件 此时该文件的代码如下所示 staticclassProgram staticvoidMain Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application Run newForm1 36 9 2 3设置启动窗体属性 3 要实现先启动Form2 只需在Program cs文件中修改此行 Application Run newForm1 代码为 Application Run newForm2 即可 4 运行程序 先启动的窗体为Form2 37 9 2 4窗体的显示与隐藏 1 窗体的显示如果要在一个窗体中通过按钮打开另一个窗体 就必须通过调用Show 方法显示窗体 语法如下 publicvoidShow 例9 2 在Form1窗体中添加一个Button按钮 在按钮的Click事件中调用Show 打开Form2窗体 代码如下 privatevoidbutton1 Click objectsender EventArgse Form2frm2 newForm2 实例化Form2frm2 Show 调用Show方法显示Form2窗体 38 9 2 4窗体的显示与隐藏 2 窗体的隐藏通过调用Hide 方法隐藏窗体 语法如下 publicvoidHide 例9 3 通过登录窗体登录系统 输入用户名和密码后 单击 登录 按钮 隐藏登录窗体 显示主窗体 关键代码如下 this Hide 调用Hide方法隐藏当前窗体frmMainfrm newfrmMain 实例化frmMainfrm Show 调用Show方法显示frmMain窗体 39 9 2 5窗体的事件 Windows是事件驱动的操作系统 对Form类的任何交互都是基于事件来实现的 Form类提供了大量的事件用于响应对窗体执行的各种操作 窗体设计人员往住关心窗体的加载和关闭 通常在加载时进行界面和数据的初始化 在关闭前进行资源的释放等清理操作 也可以取消关闭操作 下面详细介绍窗体的Click Load和FormClosing事件 40 9 2 5窗体的事件 1 Click 单击 事件当单击窗体时 将会触发窗体的Click事件 语法如下 publiceventEventHandlerClick 例9 4 在窗体的Click事件中编写代码 实现当单击窗体时 弹出提示框 代码如下 privatevoidForm1 Click objectsender EventArgse MessageBox Show 已经单击了窗体 弹出提示框 41 9 2 5窗体的事件 程序的运行如图9 6所示 42 9 2 5窗体的事件 2 Load 加载 事件当第一次直接或间接调用Form Show方法来显示窗体时 窗体就会进行且只进行一次加载 并且在必需的加载操作完成后会引发Load事件 通常 在Load事件响应函数中执行一些初始化操作 语法如下 publiceventEventHandlerLoad 43 9 2 5窗体的事件 例9 5 在下述程序 在窗体的Load事件中对窗体的大小 标题 颜色等属性进行了设置 privatevoidForm1 Load objectsender EventArgse this Width 1000 this Height 500 this ForeColor Color Cyan this BackColor Color Red this Text Welcomeyou 44 9 2 5窗体的事件 程序的运行如图9 7所示 45 9 2 5窗体的事件 3 FormClosing 关闭 事件Form类的FormClosing事件是在窗体关闭时引发的事件 直接或间接调用Form Close 方法都会引发事件 在FormClosing事件中 通常进行关闭前的确认和资源释放操作 语法如下 publiceventFormClosingEventHandlerFormClosing 例9 6 创建一个Windows应用程序 实现当关闭窗体之前 弹出提示框 询问是否关闭当前窗体 单击 是 按钮 关闭窗体 代码如下 46 9 2 5窗体的事件 privatevoidForm1 FormClosing objectsender FormClosingEventArgse DialogResultdr MessageBox Show 是否关闭窗体 提示 MessageBoxButtons YesNo MessageBoxIcon Warning if dr DialogResult Yes 使用if语句判定是否单击 是 按钮 e Cancel false 如果单击 是 按钮则关闭窗体 else e Cancel true 否则 不执行操作 47 9 2 5窗体的事件 程序的运行如图9 8所示 48 9 3窗体控件概述 控件是包含在窗体上的对象 是构成用户界面的基本元素 也是C 可视化编程的重要工具 使用控件可使程序的设计简化避免大量重复性工作 简化设计过程 有效地提高设计效率 对于一个程序开发人员而言 必须掌握每类控件的功能 用途 并掌握其常用的属性 事件和方法 49 9 3窗体控件概述 在VS2005中 工具箱中包含了建立应用程序的各种控件 工具箱分为Windows窗体 公共控件 容器 菜单和工具栏 数据 组件 打印 对话框等部分 常用的Windows窗体控件放在 Windows窗体 选项卡下 工具箱中有数十个常用的Windows窗体控件 它们以图标的方式显示在工具箱中 其名称显示于图标的右侧 50 9 3窗体控件概述 在介绍具体控件之前 首先在此探讨一下各个控件共有的属性 事件和方法 在C 中 所有的窗体控件 比如标签控件 文本框控件 按钮控件等全部都是继承于 System Windows Forms Control 作为各种窗体控件的基类 Control类实现了所有窗体交互控件的基本功能 Control类的属性 方法和事件是所有窗体控件所公有的 而且其中很多是在编程中经常会遇到的 51 9 3窗体控件概述 1 Control类的属性Control类的属性描述了一个窗体控件的所有公共属性 可以在属性 Properties 窗口中查看或修改窗体控件的属性 常用的属性如下 Name属性每一个控件都有一个Name 名字 属性 在应用程序中 可通过此属性来引用这个控件 C 会给每个新添加的控件指定一个默认名 在应用程序设计中 可根据需要将控件的默认名字改成更有实际代表意义的名字 52 9 3窗体控件概述 Text属性在C 中 每一个控件对象都有Text属性 Text属性在很多控件中都有重要的意义和作用 例如 在标签控件中显示的文字 在文本框中用户输入的文字 组合框和窗体中的标题等都是用控件的Text进行设定的 对于Text属性的设置过程及设置结果如图9 9 9 10所示 53 9 3窗体控件概述 Anchor属性Anchor的意思是 锚 那么Anchor属性是用来确定此控件与其容器控件的固定关系的 在此 所谓容器控件是指什么呢 顾名思义 容器控件就是像一般的容器一样可以存放别的控件的控件 例如 窗体控件中会包含很多的控件 像标签控件 文本框等 这时 称包含控件的控件为容器控件或父控件 而里面的控件为子控件 显然 这必然涉及到一个问题 即子控件与父控件的位置关系问题 即当父控件的位置 大小变化时 子控件按照什么样的原则改变其位置 大小 Anchor属性就用于设置此原则 54 9 3窗体控件概述 对于Anchor属性 可以设定Top Bottom Right Left中任意的几种 设置的方法非常直观 如图9 11所示 55 9 3窗体控件概述 图9 11中选中变黑的方位即为设定的控件方位 图中所示的方位为Top Left Bottom 此时 如果容器控件变化 子控件将保证其上边缘与容器上边的距离 左边缘与容器左边的距离 底边与容器底边的距离 其运行效果如图9 12所示 56 9 3窗体控件概述 Dock属性Dock属性规定了子控件与父控件的边缘依赖关系 Dock的效果 如图9 13所示 Dock的值有6种 分别是Top Bottom Left Right Fill 最后还有默认值None 一旦Dock值被设定 子控件就会发生变化与父控件选定的边缘相融在一起 57 9 3窗体控件概述 2 Control类的方法可以调用Control类的方法来获得控件的一些信息 或者设置控件的属性值及行为状态 例如 Focus方法可设置此控件获得的焦点 Refresh方法可重画控件 Select方法可激活控件 Show方法可显示控件等 58 9 3窗体控件概述 3 Control类的事件在C 中 当用户进行某一项操作时 会引发某个事件的发生 此时就会调用事件处理程序代码 实现对程序的控制 事件驱动实现是基于窗体的消息传递和消息循环机制的 在C 中 所有的机制都被封装在控件之中 极大方便了编写事件的驱动程序 如果希望能够更加深入地操作 或定义自己的事件 就需要联合使用委托 Delegate 和事件 Event 可以灵活地添加 修改事件的响应 并自定义事件的处理方法 例如 Control类的可响应的事件有 单击时发生的Click事件 双击时发生的DoubleClick事件 取得焦点时发生的GetFocus事件 鼠标移动时发生的MouseMove事件等 59 9 4常用控件 窗体是由一个个控件构成的 因此熟悉控件是进行合理 有效的程序开发的重要前提 本节内容将针对Windows窗体应用程序中常见的控件进行详细介绍 60 9 4 1按钮控件 按钮 Button 是用户与应用程序交互的最常用的工具 它用于接收用户的操作信息 去执行预先规定的命令 触发相应的事件过程 以实现指定的功能 1 常用属性 1 Text属性该属性用于设定按钮上显示的文本 该属性也可为按钮创建快捷方式 其方法是在作为快捷键的字母前加一个 字符 则在程序运行时 命令按钮上该字母带有下划线 该字母就成为快捷键 例如 某个按钮的Text属性设置为 Display 程序运行时 就会显示为 Display 61 9 4 1按钮控件 2 FlatStyle属性该属性指定了按钮的外观风格 它有4个可选值 分别是 Flat Popup System Standard 该属性的默认值为Standard 3 Image属性用于设定在按钮上显示的图形 4 ImageAlign属性当图片显示在命令按钮上时 可以通过ImageAlign属性调节其在按钮上的位置 5 Enable属性用于设定控件是否可用 不可用 则用灰色表示 6 Visible属性用于设定控件是否可见 不可见 则隐藏 注意 上述的属性中 前4项为外观属性 而后2项为行为属性 62 9 4 1按钮控件 2 响应的事件如果按钮具有焦点 就可以使用鼠标左键 Enter键或空格键触发该按钮的Click事件 当使用ShowDialog方法显示窗体时 可以使用按钮的DialogResult属性指定ShowDialog的返回值 例9 7 按钮控件的运用 1 为窗体Form1添加一个计数器nCounter 并添加3个按钮控件 分别完成递增计数器 递减计数器 通过消息框提示计数器的值的功能 并添加1个Label控件来显示每次运算后的计数器值 完成的窗体界面如图9 14所示 63 9 4 1按钮控件 2 设置窗体和各控件的属性 如表9 2所示 64 9 4 1按钮控件 3 切换到代码窗口 创建事件过程 privateintnCounter 第一次加载时 进行计数器和lblResult的初始化privatevoidForm1 Load objectsender EventArgse this nCounter 50 this ShowCounter 进行递增操作 并提示新值privatevoidbtnInc Click objectsender EventArgse this nCounter this ShowCounter 65 9 4 1按钮控件 进行递减操作 并提示新值privatevoidbtnDes Click objectsender EventArgse this nCounter this ShowCounter 通过MessageBox提示当前的值privatevoidbtnMsg Click objectsender EventArgse stringstrMsg 当前计数器 this nCounter ToString D8 MessageBox Show strMsg 提示 66 9 4 1按钮控件 显示计数器值到Label控件lblResultprivatevoidShowCounter stringstrMsg this nCounter ToString D8 this lblResult Text strMsg 67 9 4 1按钮控件 程序运行结果如图9 15所示 68 9 4 2标签控件 标签 Label 主要用来显示文本 通常用标签来为其他控件显示说明信息 窗体的提示信息 或者用来显示处理结果等信息 但是 标签显示的文本不能被直接编辑 除了显示文本外 标签还可使用Image属性显示图像 或使用ImageIndex和ImageList属性组合显示图像 69 9 4 2标签控件 1 常用属性 1 Text属性该属性用于设定标签显示的文本 可通过TextAlign属性设置文本的对齐方式 2 BorderStyle属性该属性用于设定标签的边框形式 共有3个设定值 分别是None FixedSingle Fixed3D 该属性的默认值为None 3 BackColor属性用于设定标签的背景色 4 ForeColor属性用于设定标签中文本的颜色 5 Font属性用于设定标签中文本的字体 大小 粗体 斜体 删除线等 70 9 4 2标签控件 6 Image属性用于设定标签的背景图片 可通过ImageAlign属性设置图片的对齐方式 7 Enable属性用于设定控件是否可用 不可用 则用灰色表示 8 Visible属性用于设定控件是否可见 不可见 则隐藏 9 AutoSize属性用于设定控件是否根据文本自动调整 设置为true表示自动调整 注意 上述的属性中 前6项为外观属性 而后3项为行为属性 71 9 4 2标签控件 2 响应的事件标签控件常用的事件有 Click事件和DoubleClick事件 72 9 4 2标签控件 例9 3 标签控件的运用 对窗体上的3个标签控件的参数进行设置 用来显示文本 程序代码如下 privatevoidForm1 Load objectsender EventArgse label1参数设置 默认字体为宋体9号 前景色为黑色this label1 AutoSize true this label1 BackColor System Drawing Color White this label1 Text 宋体9号 白底 黑字 73 9 4 2标签控件 label2参数设置 默认字体为宋体9号 前景色为黑色this label2 AutoSize true this label2 BackColor System Drawing Color Black this label2 Font newSystem Drawing Font 宋体 10 5F System Drawing FontStyle Regular System Drawing GraphicsUnit Point byte 134 this label2 ForeColor System Drawing Color White this label2 Text 宋体10号 黑底 白字 74 9 4 2标签控件 label3参数设置this label3 AutoSize true this label3 BackColor System Drawing Color Blue this label3 Font newSystem Drawing Font 楷体 GB2312 14 25F System Drawing FontStyle Regular System Drawing GraphicsUnit Point byte 134 this label3 ForeColor System Drawing Color Red this label3 Text 楷体14号 蓝底 红字 75 9 4 2标签控件 程序运行结果如图9 16所示 76 9 4 3文本框控件 在C 中 文本框 TextBox 是最常用的和最简单的文本显示和输入控件 文本框有两种用途 一是可以用来输出或显示文本信息 二是可以接受从键盘输入的信息 1 常用属性 1 Text属性该属性用于设定文本框显示的文本 可通过TextAlign属性设置文本的对齐方式 2 BackColor属性用于设定文本框的背景色 3 ForeColor属性用于设定文本框中文本的颜色 77 9 4 3文本框控件 4 Font属性用于设定文本框中文本的字体 大小 粗体 斜体 删除线等 5 PasswordChar属性文本框控件以密码输入方式使用 输入字母用该属性指定字符屏蔽 6 Enable属性用于设定文本框控件是否可用 不可用 则用灰色表示 7 Visible属性用于设定文本框控件是否可见 不可见 则隐藏 8 ReadOnly属性用于设定文本框控件是否只读 9 MultiLine属性用于设定文本框控件是否包多行文本 注意 上述的属性中 前5项为外观属性 而后4项为行为属性 78 9 4 3文本框控件 2 常用的方法 1 Clear方法用于清除文本框中已有的文本 2 AppendText方法用于文本框最后追加文本 79 9 4 3文本框控件 3 常用的事件在文本框控件所能响应的事件中 TextChanged Enter和Leave是常用的事件 1 TextChanged事件当文本框的文本内容发生变化时 触发该事件 当向文本框输入信息时 每输入一个字符 就会引发一次TextChanged事件 2 Enter事件当文本框获得焦点时 就会引发的事件 3 Leave事件当文本框失去焦点时 就会引发的事件 80 9 4 3文本框控件 例9 9 文本框控件的运用 实现步骤如下 1 为窗体Form1添加2个TextBox控件 tbInput和tbHint 前者可编辑单行文本 用来获取用户输入 后者用于显示数据 应设置为只读多行文本 同时 再添加1个Label控件lblCopy 用来显示输入文本框中数据 81 9 4 3文本框控件 2 在此例中 通过程序代码设置相应的控件的属性 主要程序代码如下 privatevoidForm1 Load objectsender EventArgse 设置2个文本框的属性this tbInput ForeColor Color Blue this tbHint BackColor Color White this tbHint ForeColor Color Green this tbHint ReadOnly true 82 9 4 3文本框控件 privatevoidtbInput Enter objectsender EventArgse 光标进入清除原有文本this tbInput Clear privatevoidtbInput Leave objectsender EventArgse 焦点退出 将文本添加到tbHint新的一行this tbHint AppendText this tbInput Text Environment NewLine 83 9 4 3文本框控件 privatevoidtbInput TextChanged objectsender EventArgse 将当前tbInput中文本内容同步显示到lblCopy中this lblCopy Text this tbInput Text 注意 在tbInput Leave事件中将编辑好的文本通过方法TextBox AppendText 追加tbHint中 在tbInput TextChanged事件中将tbInput中最新的文本同步显示到lbCopy控件上 程序运行结果如图9 17所示 84 9 4 4单选按钮控件 单选按钮 RadioButton 控件为用户提供由两个或多个互斥选项组成的选项集 当用户选中某单选项按钮时 同一组中的其他单选项按钮不能同时选定 该控件以圆圈内加点的方式表示选中 单选按钮用来让用户在一组相关的选项中选择一项 因此单选按钮控件总是成组出现 直接添加到一个窗体中的所有单选按钮将形成一个组 若要添加不同的组 必须将它们放到面板或分组框中 将若干RadionButton控件放在一个GroupBox控件内组成一组时 当这一组中的某个单选按钮控件被选中时 该组中的其他单选控件将自动处于不选中状态 85 9 4 4单选按钮控件 1 常用属性 1 Text属性该属性用于设置单选按钮旁边的说明文字 以说明单选按钮的用途 2 Check属性表示单选按钮是否被选中 选中则Checked值为True 否则为False 2 响应的事件单选按钮响应的事件主要是Click事件和CheckedChanged事件 当鼠标单击单选按钮时 触发Click事件 并且改变Checked属性值 Checked属性值的改变 同时将触发CheckedChanged事件 86 9 4 4单选按钮控件 例9 10 单选按钮控件的运用 通过选择不同的单选按钮 实现在文本框中显示不同水果的价格 实现步骤如下 1 创建如图9 18所示的窗体 87 9 4 4单选按钮控件 2 设置窗体和各控件的属性 如表9 3所示 88 9 4 4单选按钮控件 3 打开代码窗口 编写事件过程 privatevoidrdoApple CheckedChanged objectsender EventArgse txtPrice Text 10 0 privatevoidrdoBanana CheckedChanged objectsender EventArgse txtPrice Text 8 5 89 9 4 4单选按钮控件 privatevoidrdoPineapple CheckedChanged objectsender EventArgse txtPrice Text 12 5 90 9 4 5复选框控件 复选按钮 CheckBox 控件 它与单选按钮一样 也给用户提供一组选项供其选择 但它与单选按钮有所不同 每个复选框都是一个单独的选项 用户既可以选择它 也可以不选择它 不存在互斥的问题 可以同时选择多项 1 常用属性 1 Text属性 该属性用于设置复选框旁边的说明文字 以说明复选框的用途 2 Check属性 表示复选框是否被选择 True表示复选框被选择 False表示复选框未被选择 91 9 4 5复选框控件 3 CheckState属性 反映该复选框的状态 有3个可选值 Checked 表示复选框当前被选中 Unchecked 表示复选框当前未被选中 Indeterminate 表示复选框当前状态未定 此时该复选框呈灰色 2 响应的事件复选框响应的事件主要是Click事件 CheckedChanged事件和CheckStateChanged事件 当鼠标单击复选框时 触发Click事件 并且改变Checked属性值和CheckState属性值 Checked属性值的改变 同时将触发CheckedChanged事件 CheckState属性值的改变 同时将触发CheckStateChanged事件 92 9 4 5复选框控件 例9 11 复选框控件的运用 通过选择不同的复选框 实现输出选中的业余爱好 实现步骤如下 1 创建一个Windows窗体应用的程序 添加如图9 19所示的控件 2 编写 确定 按钮btnOk和 退出 btnExit的代码 其中 确定 按钮功能为显示一个对话框 输出用户用户所填内容 退出 按钮功能为结束程序 93 9 4 5复选框控件 94 9 4 5复选框控件 3 程序的完整代码如下 usingSystem usingSystem Collections Generic usingSystem ComponentModel usingSystem Data usingSystem Drawing usingSystem Text usingSystem Windows Forms namespaceUseCheckBox publicpartialclassForm1 Form 95 9 4 5复选框控件 publicForm1 InitializeComponent 检查用户输入的信息是否有效privatevoidtxtName Validating objectsender CancelEventArgse if txtName Text Trim string Empty MessageBox Show 姓名为空 请重新输入 txtName Focus 96 9 4 5复选框控件 privatevoidbtnExit Click objectsender EventArgse this Close 97 9 4 5复选框控件 privatevoidbtnOk Click objectsender EventArgse stringstrUser string Empty strUser 姓名 txtName Text n strUser strUser 业余爱好 chkMovie Checked 电影 chkMusic Checked 音乐 chkSport Checked 体育 n DialogResultresult MessageBox Show strUser 信息确认 MessageBoxButtons OKCancel MessageBoxIcon Information MessageBoxDefaultButton Button1 if result DialogResult OK txtName Clear chkMovie Checked false chkMusic Checked false chkSport Checked false 98 9 4 5复选框控件 privatevoidbtnExit MouseEnter objectsender EventArgse txtName CausesValidation false privatevoidbtnExit MouseLeave objectsender EventArgse txtName CausesValidation true 99 9 4 5复选框控件 单击 信息确认 对话框中的 确定 按钮 将会清除已输入的内容 包括复选框的选中状态 程序运行 输入相应的内容 如图9 20所示 单击 确定 按钮后 弹出的对话框如图9 21所示 100 9 4 5复选框控件 说明 代码中用到了MessageBox的另一个构造方法 这种方法使得MessageBox的外观更加多样化 包括了MessageBox的标题 Title 图标 MessageBoxIcons 的按钮 MessageBoxButtons 另外 程序中还编写了btnExit的Enter和Leave事件 目的是为了在单击 退出 按钮时 不引发TextBox控件的Validating事件 防止多余的提示 在Leave事件中又恢复TextBox控件的Validating事件 读者可以先删除该段代码 以查看相应的效果 101 9 4 6列表框 列表框 ListBox 控件提供一个项目列表 用户可以从中选择一项或多项 在列表框内的项目称为列表框 列表项的加入是按一定的顺序进行的 这个顺序号称为索引号 列表框内列表项的索引号是从0开始的 即第一个加入的列表项索引号为0 其余索引项的索引号依次类推 102 9 4 6列表框 1 常用属性 1 Items属性通过该属性 设置或获取列表框的项 用户可以事先在属性窗口中设置 也可以在程序中进行设置 2 Multicolumn属性用于设置列表框是否多列列表框 默认值为False 表示列表项一单列显示 103 9 4 6列表框 3 SelectionMode属性该属性用于设定列表框选择属性 共有4个可选值 None 表示不允许进行选择 One 表示只允许选择其中一项 此值为默认值 MultiSimple 表示允许同时选择多个列表项 MultiExtended 用鼠标和Shift键组合可以选择连续的列表项 用鼠标和Ctrl键组合可以选择不连续的列表项 104 9 4 6列表框 4 SelectedItem属性获取或设置列表框中的当前选定项 5 SelectedItems属性获取或设置列表框中当前选定项的集合 6 SelectedIndex属性获取或设置列表框中的当前选定项的从零开始的索引 在编程时 用户可以捕获该属性值 然后根据该值来进行相应的动作 注意 上述的属性中 前2项为外观属性 而后4项为行为属性 105 9 4 6列表框 2 响应的事件列表框控件除了能响应常用的Click DoubleClick GotFocus LostFocus等事件外 还可响应特有的SelectedIndexChanged事件 SelectedIndexChanged事件 当用户改变列表中的选择时 将会触发此事件 106 9 4 6列表框 3 常用的方法列表框的列表项可以在属性窗口中通过Item属性来设置 也可以在应用程序中用Items Add或Items Insert方法来添加 用Items Remove或Items Clear方法删除 1 Items Add方法Items Add方法的功能是把一个列表项加入列表框的底部 其一般格式如下 Listname Items Add Item 其中 Listname是列表控件的名称 Items是要加入列表框的列表框 必须是一个字符串表达式 107 9 4 6列表框 2 Items Insert方法Items Insert方法的功能是把一个列表项插入到列表框的指定位置 其一般格式如下 Listname Items Insert Index 列表项 其中 Index是新增列表项在列表框中的指定位置 Index值为0时 表示列表项添加到列表框的第一个位置 3 Items Remove方法Items Remove方法的功能是清除列表框中的指定列表项 其一般格式如下 Listname Items Remove Item 108 9 4 6列表框 Items Clear方法Items Clear方法的功能是清除列表框中的所有列表项 其一般格式如下 Listname Items Clear 109 9 4 6列表框 例9 12 列表框控件的运用 1 创建一个Windows窗体应用程序 在窗体上添加如图9 22所示的控件 其中 ListBox控件名称如图所示 4个按钮的名称依次为btnRight btnRightAll btnLeftAll和btnLeft 2 更改lstLeft控件的Items属性 弹出如图9 23所示的字符串集合编辑器 依次输入星期日 星期一 星期二 星期三 星期四 星期五和星期六 单击 确定 按钮 得到如图9 24所示的窗体 3 编写各个按钮的代码 功能为使得ListBox控件的选项在lstLeft和lstRight控件之间移动 并将记录输出到lstBottom列表框控件中 110 9 4 6列表框 111 9 4 6列表框 4 完整的程序代码如下 usingSystem usingSystem Collections Generic usingSystem ComponentModel usingSystem Data usingSystem Drawing usingSystem Text usingSystem Windows Forms namespaceUseListBox publicpartialclassForm1 Form 112 9 4 6列表框 publicForm1 InitializeComponent 113 9 4 6列表框 privatevoidbtnRight Click objectsender EventArgse if lstLeft SelectedItems Count 0 return else lstRight Items Add lstLeft SelectedItem lstBottom Items Add lstLeft SelectedItem ToString 被移至右侧 lstLeft Items Remove lstLeft SelectedItem 114 9 4 6列表框 privatevoidbtnRightAll Click objectsender EventArgse foreach objectiteminlstLeft Items lstRight Items Add item lstBottom Items Add 左侧列表项被全部移至右侧 lstLeft Items Clear 115 9 4 6列表框 privatevoidbtnLeftAll Click objectsender EventArgse foreach objectiteminlstRight Items lstLeft Items Add item lstBottom Items Add 右侧列表项被全部移至左侧 lstRight Items Clear 116 9 4 6列表框 privatevoidbtnLeft Click objectsender Ev
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!