第5章 Windows窗体界面设计(2).ppt_第1页
第5章 Windows窗体界面设计(2).ppt_第2页
第5章 Windows窗体界面设计(2).ppt_第3页
第5章 Windows窗体界面设计(2).ppt_第4页
第5章 Windows窗体界面设计(2).ppt_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

5 2 3MaskedTextBox控件 MaskedTextBox控件 也叫掩码文本框 它的主要作用是控制输入文本的格式 如果输入的内容不满足规定的格式 则控件不会接收该输入 如下图是从工具箱向窗体拖动该控件的图示 将鼠标指针指向窗体上的MaskedTextBox控件 单击右键 在快捷菜单中 选择属性命令 打开 属性 窗口 如下图所示 1 常用的基本属性 1 InsertKeyMode 属性 指示向掩码文本框输入字符时的输入模式 其属性值有 Default Insert和Overwrite3种 当属性值为Default时 表示输入模式由当时键盘的插入 改写状态决定 如果输入时键盘处于改写模式 则会改写输入处的字符 否则为插入字符 当属性值为Insert时 即使键盘的Ins键被按下 也不会以改写方式输入字符 当属性值为Overwrite时 则任何时候都是以改写方式输入字符 2 PromptChar 属性 指定作为占位符的字符 用于指示用户需要输入的字符长度 默认的占位符为下划线 需要修改时可以直接在属性后的空白处输入指定字符 3 Mask 属性 设置当前掩码文本框输入字符的格式 单击 Mask 属性后的 按钮 弹出如图所示的窗口 其中是一些设置好的时间 电话号码的格式 若这些格式都不能满足设计要求 也可以选择自定义格式 或者在 Mask 属性后的空白处直接输入自定义格式 自定义输入格式时 可以使用掩码和分隔符两类符号 掩码用于限制用户可输入的符号类型 程序运行时掩码以占位符显示 而分隔符可作为输入字符之间的关联符 分隔符显示在掩码文本框中 且不可修改 表5 3列出了常用掩码和分隔符的含义 表5 3常用的掩码和分隔符 4 AllowPromptAsInput 属性 指定是否允许将占位符看做有效的输入字符 true为允许 false为不允许 默认值为true 5 ResetOnPrompt 属性 决定当输入字符与占位符相同时 是否跳过当前输入字符的位置 若设置为true 则跳过输入的字符 光标直接移到下一字符位置 若设置为false 则检查该字符是否为允许接收的字符 若不符合格式要求 则不接收 默认值为true 注意 该属性与 AllowPromptAsInput 属性的含义是不同的 而且 ResetOnPrompt 属性优先于 AllowPromptAsInput 属性 当 ResetOnPrompt 属性设置为true时 不会检查该字符是否为有效字符 当 ResetOnPrompt 属性设置为false AllowPromptAsInput 属性设置为true时 会将占位符作为普通的字符处理 当 ResetOnPrompt 属性设置为false AllowPromptAsInput 属性设置为false时 会拒绝接收占位符 6 TextMaskFormat 属性 表示由掩码文本框的 Text 属性得到的字符串中是否包含占位符 分隔符的内容 该属性共有4个选项 ExcludePromptAndLiterals表示占位符和分隔符均不包含 IncludePrompt表示仅包含占位符 IncludeLiterals表示仅包含分隔符 IncludePromptAndLiterals表示占位符和分隔符均包含 7 HidePromptOnLeave 属性 指示若当前控件未处于活动状态时 是否显示占位苻 若属性值为true时 表示当控件不是活动状态 隐藏占位苻 若属性值为false时 即使控件不是活动状态 仍然显示占位符 2 常用的基本事件MaskInputRejected事件 当输入字符不符合掩码要求时触发的操作 例5 3 简单的用户信息登录界面示例 1 新建一个名为MaskedTextBoxExample的Windows应用程序项目 在 解决方案资源管理器 中Form1 cs重命名为FormMaskedTextBox cs 如下各图所示 单击 开始 程序 MicrosoftVisualStudio2005 MicrosoftVisualStudio2005 命令 启动MicrosoftVisualStudio2005集成编译环境 如图所示 在下图中 双击 创建项目 P 命令 如图圈红色部分 输入项目名称 在随后出现的图形中 在 项目类型 列表中选择 VisualC 在 模板 T 中选择 Windows应用程序 在 名称 右边的文本框中输入本例要求的文件名 MaskedTextBoxExample 在 位置 右边的文本框中输入文件所在的路径 作者将本例存放在 P盘 下的文件夹中 大家可以直接放在D盘或E盘 即直接在 位置 右边的文本框中输入 D 或者 E 解决方案名称 右边文本框不用输入内容 它会自动与 名称 右边文本框中的内容一样 单击 确定 按钮后 出现 VisualStudio2005集成编译环境工具界面 选择菜单 视图 下的 解决方案资源管理器 命令 如下图所示 出现 解决方案资源管理器 界面 如下图圈红色部分所示 将鼠标指向 Form1 cs 单击右键 选择 重命名 命令 将 Form1 改为 FormMaskedTextBox 扩展名不改 修改后按 回车 键 在出现的对话框中 选择 是 Y 按钮 如图中红色部分 单击 是 Y 按钮后 出现如下图界面 圈红色部分已修改 2 调整窗体到适当大小 设置 Text 属性为 员工信息管理示例 作为窗体标题栏显示的文本 注意 要先单击 FormMaskedTextBox cs 设计 小窗口标题 再设置该窗体的 Text 属性 分别如图两处圈红色部分 输入完毕按 回车键 窗体 标题栏 处标题已改为 员工信息管理示例 3 向Form窗体中添加5个MaskedTextBox控件 1个Button控件和7个Label控件 窗体中各控件的属性 布局及显示效果如图所示 下2图所示是标签label1的形成过程 即从工具箱上将 Label 控件拖到窗体上的适当位置 松开鼠标 在属性窗口 将其 Text 属性修改为 员工号 下图是第一个MaskedTextBox控件的形成过程 该控件需要设置 Name Mask TextMaskFormat 3个控件属性 选中刚才拖入到窗体中的MaskedTextBox控件 在属性窗口找到 Name 属性 将其值改为 maskedTextBoxUserCode 如图圈红色部分 然后按 回车 键 在属性窗口里找到 Mask 属性 如下图所示 在 Mask 右边的文本框中输入 LLLL 0000 然后按回车键 他们的含义是 符号表示其后输入的字母都要转换为大写 LLLL 表示4个英文字母 大小写均可 表示连接分隔符 0000 4个零 表示可以输入4个 0 9 之间的任何数字 在属性窗口里找到 TextMaskFormat 属性 将其修改为 IncludeLiterals如图圈红色部分所示 至此 本例第一个MaskedTextBox控件需要修改的属性修改完毕 该窗体的其他控件属性设置依此类推 下面不再详细说明 注意 图中有关控件的 指示方框 中第一行内容是指该控件的 Namne 属性值 没有说明的控件属性 采用默认值 该例题设置好的窗体界面如下图所示 在窗体的空白位置处单击鼠标右键 在快捷菜单中选择 查看代码 命令 如下图所示 在随后出现的界面中 显示系统初步设置好的一些代码 如下图所示 4 在FormMaskedTextBox类中直接编写MyMaskInputRejected事件和MyMaskInputReset事件 具体代码为 若输入不符合要求 则以红色字体显示输入信息privatevoidMyMaskInputRejected objectsender MaskInputRejectedEventArgse MaskedTextBox sender ForeColor Color Red 重新输入时 以改写方式输入 并恢复正常的字体颜色privatevoidMyMaskInputReset objectsender KeyEventArgse MaskedTextBox sender InsertKeyMode InsertKeyMode Overwrite MaskedTextBox sender ForeColor Color FromName WindowText 输入后的界面如下图所示 5 在构造函数中添加触发事件需要的代码 publicFormMaskedTextBox InitializeComponent labelResult Visible false maskedTextBoxBirthday ValidatingType typeof System DateTime 指定maskedTextBoxPhone的MaskInputRejected事件maskedTextBoxPhone MaskInputRejected newMaskInputRejectedEventHandler MyMaskInputRejected maskedTextBoxPhone KeyDown newKeyEventHandler MyMaskInputReset maskedTextBoxSalary MaskInputRejected newMaskInputRejectedEventHandler MyMaskInputRejected maskedTextBoxSalary KeyDown newKeyEventHandler MyMaskInputReset 在输入构造函数时 系统已经提供框架 即 publicFormMaskedTextBox InitializeComponent 已存在 用户只需将其余代码输入既可 编写后的图形界面为 6 添加maskedTextBoxBirthday的TypeValidationCompleted事件代码 操作步骤为 切换到设计界面 即单击如图圈红色所示标题 在设计界面中 选中 maskedTextBoxBirthday 控件 单击属性窗口中的雷电符号 在列表中选择 TypeValidationCompleted 事件 如下图所示 在设计界面中 选择 TypeValidationCompleted 事件后 双击该事件名 出现代码界面 如下图所示 将该事件代码补充完整如下 privatevoidmaskedTextBoxBirthday TypeValidationCompleted objectsender TypeValidationEventArgse if e IsValidInput MessageBox Show 您输入的日期不正确 MaskedTextBox sender Focus MaskedTextBox sender InsertKeyMode InsertKeyMode Overwrite 输入后的界面如下图所示 7 双击buttonOK按钮 添加Click事件代码 操作步骤为 切换到设计界面 如下图所示 双击buttonOK按钮 即 提交 按钮 出现如下图所示界面 在上图圈红色部分补充完整如下代码 privatevoidbuttonOk Click objectsender EventArgse 用户名和真实姓名不允许空 进行处理时首先验证二者if maskedTextBoxUserCode Text maskedTextBoxUserName Text MessageBox Show 您还没有填写用户名或真实姓名 maskedTextBoxUserCode Focus return 若输入满足要求 则显示输入的信息labelResult Visible true labelResult Text string Format 新添加雇员信息如下 n 员工号 0 n姓名 1 n出生日期 2 n电话号码 3 n月薪 4 maskedTextBoxUserCode Text maskedTextBoxUserName Text maskedTextBoxBirthday Text maskedTextBoxPhone Text maskedTextBoxSalary Text 输入完成后的界面为 8 按键编译并执行 理解MaskedTextBox控件的使用方法 5 2 4RichTextBox控件RichTextBox控件的主要功能是进行高级文本输入和编辑 作为一般的文本输入 其属性 事件与TextBox控件的属性 事件大致相同 但是RichTextBox控件有一些特殊的属性和方法 使用它可以完成与MicrosoftWord相似的复杂文字处理功能 例如改变文本 段落的显示格式 在文本中查找特定字符和字符串以及与RTF文件的交互等 表5 4列出了RichTextBox控件的常用属性和方法 表中示例假设当前的RichTextBox控件命名为RichTB 表5 4RichTextBox控件的常用属性和方法 续表5 4 例5 4 创建一个可以对RTF文件进行编辑操作的Windows应用程序 要求实现以下功能 读取 D source rtf 文件中的内容 对其中的特定字符串进行替换 但要保护其中指定的关键内容不被修改 将修改后的内容保存为 D result rtf 文件 并以列表的形式对窗体功能进行说明 1 新建一个名为RichTextBoxExample的Windows应用程序项目 将Form1 cs重命名为FormRichTextBox cs 2 选中Form窗体 在 属性 中设置 Size 属性为Width 600 Height 或者可以直接使用鼠标拉动窗体右下角调整到适当大小 设置 Text 属性为 RTF文件操作 作为标题栏的显示文本 3 向窗体中添加5个Label控件 一个RichTextBox控件 3个TextBox控件和5个Button控件 窗体中各种控件的属性 布局及显示效果如图所示 4 双击buttonDisplay按钮 添加Click事件代码 privatevoidbuttonDisplay Click objectsender EventArgse 清除richTextBox1中的内容richTextBox1 Clear 采用不同的字体及颜色 以列表的方式显示每一项介绍信息richTextBox1 SelectedText 窗体使用介绍 n richTextBox1 SelectionBullet true richTextBox1 SelectionFont newFont 隶书 14 System Drawing FontStyle Bold richTextBox1 SelectionColor Color OrangeRed richTextBox1 SelectedText 读入的RTF文件为 source rtf n richTextBox1 SelectionFont newFont 宋体 14 System Drawing FontStyle Bold richTextBox1 SelectionColor Color LightSalmon richTextBox1 SelectedText 保存RTF文件为 result rtf n richTextBox1 SelectionFont newFont 隶书 14 System Drawing FontStyle Bold richTextBox1 SelectionColor Color BlueViolet richTextBox1 SelectedText 可以使用锁定功能保护文本中的关键字符 以免被错误地修改 n richTextBox1 SelectionFont newFont 隶书 14 System Drawing FontStyle Bold richTextBox1 SelectionColor Color Purple richTextBox1 SelectedText 可以使用替换功能修改文本中的某些内容 或直接修改 n 取消列表形式 以显示其他内容richTextBox1 SelectionBullet false 5 添加buttonOpenFile和buttonSaveFile的Click事件代码 读入d source rtf文件的内容 显式于richTextBox1中privatevoidbuttonOpenFile Click objectsender EventArgse richTextBox1 LoadFile D source rtf RichTextBoxStreamType RichText 将richTextBox1中的内容保存于D result rtf文件中 并给出提示信息privatevoidbuttonSaveFile Click objectsender EventArgse richTextBox1 SaveFile D result rtf RichTextBoxStreamType RichText MessageBox Show 当前文本已保存于 result rtf 文件中 6 添加buttonFind的Click事件代码 privatevoidbuttonFind Click objectsender EventArgse 若没有指定替换或被替换字符串 则不应执行该事件if textBoxFind1 Text textBoxFind2 Text MessageBox Show 没有完整指定替换或被替换字符串 return 若没有找到所要替换的指定字符串 则提示并退出intmyTextPosition richTextBox1 Find textBoxFind1 Text if myTextPosition 1 MessageBox Show 文本中没有找到字符串 return 若所要替换的指定字符串是已经被保护的关键信息 则提示不能替换if richTextBox1 SelectionProtected MessageBox Show 字符串已经被设为只读状态 不能替换 return 若替换操作的条件合法 则进行替换操作 并给出提示信息richTextBox1 SelectionColor Color Red richTextBox1 SelectionFont newFont 隶书 16 System Drawing FontStyle Bold richTextBox1 SelectedText textBoxFind2 Text myTextPosition labelResult Visible true labelResult Text string Format 目前共有 0 个文字 你要查找的在第 2 个字符的位置上 已被替换为 richTextBox1 Text Length textBoxFind1 Text myTextPosition textBoxFind2 Text 7 添加buttonProtected的Click事件代码 privatevoidbuttonProtected Click objectsender EventArgse intmyText2 richTextBox1 Find textBoxProtected Text if textBoxProtected Text MessageBox Show 没有指定要保护的信息 return if myText2 1 MessageBox Show 文本中不存在指定的字符串 return richTextBox1 SelectionProtected true 8 按键编译并执行 尝试不同的操作 理解RichTextBox控件的主要使用方法 单击 程序说明 按钮 显示如下信息 单击 读入RTF文件 按钮 显示如下信息 单击 保存RTF文件 按钮 显示信息如下 在 文本中的 右边文本框中输入 界面 在 替换为 右边文本框中输入 interface 单击 查找下一处 按钮 会发现richtextBox中第一个 界面 被替换为 interface 并且为红色 再单击一次 查找下一处 按钮 会发现richtextBox中第二个 界面 被替换为 interface 并且为红色 在 锁定文本中出现的第一个 右边的文本框中输入 界面 并单击 设为只读 按钮 单击 查找下一处 按钮 会出现如下界面 5 2 5CheckBox控件CheckBox控件 即复选框控件 可为用户提供选择功能 常用的是二选一的选择 如 真 假 或 是 否 但该控件也可以通过属性的设置做三选一的操作 每一个CheckBox说代表的选择都是独立的 若有多个CheckBox控件构成一组选项时 则可以多个同时被选中 相互之间不影响 即复选 1 常用的基本属性 1 Text 属性 表示与复选框控件关联的文本 2 Appearance 属性 指定CheckBox控件是以默认的复选框样式显示 还是以类似于Button控件的样式显示 3 FlatStyle 属性 表示当鼠标移动到复选框上时 复选框所要显示的外观 4 Checked 属性 获取或设置复选框的选中状态 true表示选中 false表示未选中 5 ThreeState 属性 决定是否启用复选框的第三种状态 不确定状态 若设置该属性为true 则当前复选框变为三选一的复选框 此时复选框的选中状态可由 CheckState 的3个枚举值 Checked Unchecked和Indeterminate来表示 三选一复选框的各种状态显示效果图如图所示 注意 当CheckBox控件作为三选一的复选框时 CheckState 属性值与 Checked 属性值的对应关系 Checked 属性的true值对应于 CheckState 属性的Checked和Indeterminate值 Checked 属性的false值对应于 CheckState 属性的Unchecked值 2 常用的基本事件 1 CheckedChange事件 当复选框的Checked属性值更改时触发的操作 2 Click事件 当鼠标单击当前CheckBox控件时触发的操作 例5 5 设计一个窗体 要求一个复选框用于改变窗体的颜色 一个复选框用于改变窗体上字体的大小 第三个复选框与前两个复选框关联 根据其选中 未选中和不确定状态来表示前两个复选框的全部选中 全部未选中和只有一个选中的3种可能状态 1 新建一个名为CheckBoxExample的Windows应用程序项目 将Form1 cs重名为FormCheckBox cs 2 选中Form窗体 设置 Size 属性为Width 300 Height 260 或者可以直接使用鼠标拉动窗体右下角调整倒适当大小 设置 Text 属性为 复选框示例 作为窗体标题栏显示的文本 3 在Form窗体中添加3个CheckBox控件 窗体中各控件布局及显示效果如图所示 4 添加checkBoxColor和checkBoxFont的CheckedChanged事件代码 分别控制窗体颜色的变化和窗体中字体大小的变化 根据checkBoxColor的Checked属性值变化 来改变字体颜色privatevoidcheckBoxColor CheckedChanged objectsender EventArgse if checkBoxColor Checked this BackColor Color LightBlue else this BackColor Color LightGreen 根据checkBoxFont的checked属性值变化 来改变字体大小privatevoidcheckBoxFont CheckedChanged objectsender EventArgse if checkBoxFont Checked this Font newFont this Font FontFamily Name 12 this Font Style else this Font newFont this Font FontFamily Name 8 this Font Style 5 添加checkBoxSelectAll的CheckedChanged事件代码 用于响应直接单击checkBoxSelectAll以及改变checkBoxColor和checkBoxFont两控件状态对策ckBoxSelectAll状态变化的处理 privatevoidcheckBoxSelectAll Click objectsender EventArgse 单击checkBoxSelectAll使其处于两态的变化 并据此改变checkBoxColor和CheckBoxFont状态 使三者一致checkBoxSelectAll ThreeState false if checkBoxSelectAll Checked true checkBoxColor Checked true checkBoxFont Checked true elseif checkBoxSelectAll Checked false checkBoxColor Checked false checkBoxFont Checked false 每次checkBoxSelectAll的状态发生变化 包括单击控件或代码执行导致的 均要执行以下代码privatevoidcheckBoxSelectAll CheckedChanged objectsender EventArgse if checkBoxSelectAll Checked false checkBoxColor Checked false checkBoxFont Checked false 6 为了使checkBoxSelectAll能够真实反映checkBoxColor和checkBoxFont的状态 添加如下方法 如果checkBoxColor和checkBoxFont的Checked属性值相同 则使checkBoxSelectAll取同样的属性值 并取消Indeterminate状态 否则 checkBoxSelectAll取Indeterminate状态值privatevoidSetCheckState if checkBoxColor Checked 7 在checkBoxColor和checkBoxFont的Click事件中添加相同的代码 单击checkBoxColor和checkBoxFont会对checkBoxSelectAll的状态产生影响privatevoidcheckBoxColor Click objectsender EventArgse checkBoxSelectAll ThreeState true SetCheckState privatevoidcheckBoxFont Click objectsender EventArgse checkBoxSelectAll ThreeState true SetCheckState 8 按键编译并执行 体会checkBox的状态使用方法 只单击 更改窗体颜色 复选框 该程序运行的初始界面 只单击 更改字体大小 复选框 同时选中 更改字体大小 复选框和 更改窗体颜色 复选框 5 2 6CheckedListBox控件CheckedListBox控件 即复选框列表控件 它提供一个项列表 每一项都是一个复选框 当窗体中所需的复选框选项较多时 或者需要在运行时动态地决定有哪些选项时 使用此控件 1 常用的基本属性 1 Item 属性 描述控件对象中的所有项 单击属性列表中的 Items 属性后 按钮 即可以在对话框中添加CheckedListBox控件中要显示的各项 每一项占一行 2 MultiColumn 属性 决定是否可以以多列的形式显示各项 当然 只有在控件对象的指定高度内无法完全显示所有项 且该属性值为true时 才会分为多列显示各项 若 MultiColumn 属性值为false 则控件对象会根据项的多少自动显示滚动条 以便用户可以看到列表中的所有项 3 ColumnWidth 属性 当控件对象支持多列时 指定各列所占的宽度 4 CheckOnClick 属性 决定是否在第一次单击某复选框时即改变其状态 5 SelectionMode 属性 指示复选框列表控件的可选择性 对于CheckedListBox控件 该属性只有两个可用的值None和One 其中None值表示复选框列表中的所有选项都处于不可选状态 One值则表示复选框列表中的所有选项均可选 6 Sorted 属性 表示控件对象中的各项是否按字母的顺序排序显示 7 CheckedItems 属性 用于获取控件对象中选中项的集合 注意 该属性是只读的 不能人为设置其值 8 Ch

温馨提示

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

评论

0/150

提交评论