《VB开发技术》课程实验指导(6)

2019-07-13 17:54

VB.NET开发技术实验指导书

(7)添加改变文本框对齐方式的代码,并且当对齐方式改变时在菜单项中也将显示激活标记。下面给出了自定义过程TxtContLayout的代码,它接受一个整型值来改变文本框中的对齐和菜单项标记的状态。

Private Sub TxtContLayout(ByVal menuindex As Integer) mnuFmtLeft.Checked = False mnuFmtMiddle.Checked = False mnuFmtRight.Checked = False Select Case menuindex Case 0 '左对齐

mnuFmtLeft.Checked = True Case 1 '右对齐

mnuFmtRight.Checked = True Case 2 '居中对齐

mnuFmtMiddle.Checked = True End Select

txtCont.TextAlign = menuindex End Sub

(8)接下来添加改变文本框字体格式的代码。它也是同步进行的,当格式改变时,菜单项的状态也随之改变。我们添加了一个过程FontLayout,它的代码如下:

Private Sub FontLayout(ByVal fontindex As Integer) mnuFmtDefine.Checked = False mnuFmtBold.Checked = False mnuFmtItalic.Checked = False mnuFmtUnderline.Checked = False mnuFmtStrikeout.Checked = False Select Case fontindex

Case 0 '默认字体格式 mnuFmtDefine.Checked = True Case 1 '字体加粗显示 mnuFmtBold.Checked = True Case 2 '字体斜体显示 mnuFmtItalic.Checked = True Case 4 '添加字体下划线

mnuFmtUnderline.Checked = True Case 8 '添加字体删除线 mnuFmtStrikeout.Checked = True End Select

txtCont.Font = NewFontClass(fontindex) End Sub

FontLayout过程与NewFontClass过程结合完成这些功能。FontLayout过程负责改变菜单项的状态,NewFontClass过程负责改变字体的格式。

Private Function NewFontClass(ByVal shape As Integer) As Font

NewFontClass = New System.Drawing.Font(\宋体\ End Function

17

VB.NET开发技术实验指导书

(9)根据本章所介绍的内容完成解决方案中的其他功能。运行Exercises8-1项目,选择【文件】|【新建】命令,创建两个子窗体实例。在子窗体中输入几段文字,再通过【格式】菜单改变字体格式和对齐方式,如图7-2所示。

图7-2 改变格式和对齐方式

图7-3 扩展MDI应用程序

练习2:扩展MDI应用程序

这次以上次实验的结果为基础,继续对MDI应用程序的功能进行扩展,如图8-27所示本次实验的结果。

首先我们需要在父窗体上创建一个状态栏实例。在状态栏显示打开的文档数量,显示文档的字符数、字数。字是由空格分隔的若干字符。当用户在文本框中修改文本内容时,更新字符数和字数。另外,当用户在不同的MDI子窗体导航时也更新这些值。

然后在子窗体创建一个工具栏实例。工具栏按钮允许对文本框中的字体格式和对齐方式进行控制。并且,当用户在不同的MDI子窗体之间导航时都将恢复到默认值。

练习3:防止加载多个重复子窗体

在创建MDI应用程序时使用最多就是子窗体和父窗体之间的通信。MDI父窗体要获

18

VB.NET开发技术实验指导书

得当前的活动窗体和窗体数量,以及子窗体必须引用父窗体的实例。但是当在MDI父窗体中出现了多个不同的子窗体时,当再次单击时将不希望重新创建该子窗体的引用,而是直接激活该子窗体。如图7-4所示,如果再次单击工具栏中的“学生信息”按钮,则不会再创建该子窗体的实例,而是激活它。

图7-4 防止加载多个重复子窗体示例

这个功能的执行原理是:首先检测是否有MDI子窗体,如果没有,则创该MDI子窗体的窗体实例;如果有,则检测当中有没有其窗体实例,有则激活;没有则创建其窗体实例。下面是实现这个功能的CheckForm过程,它需要两个参数:MDIChildForm是需检测的窗体,MDIChildFormName是检测窗体的名字。

Public Sub CheckForm(ByVal MDIChildForm As Form, ByVal MDIChildFormName As String) If MIDIfrm.MdiChildren.Length < 1 Then

'如果没有任何一个MDI子窗体,则创该MDI子窗体的窗体实例 ShowNewFrm(MDIChildFormName) '退出过程 Exit Sub Else

Dim x As Integer

Dim FrmChecked As Boolean

'循环遍历MDI父窗体中的所有子窗体 For x = 0 To (MIDIfrm.MdiChildren.Length) - 1

Dim tempChildfrm As Form = CType(MIDIfrm.MdiChildren(x), Form) If tempChildfrm.Text = MDIChildFormName Then FrmChecked = True

'检测到有该MDI子窗体,设为TRUE 并退出循环 Exit For Else

FrmChecked = False End If Next

19

VB.NET开发技术实验指导书

If FrmChecked = False Then

'在打开的窗体中没检测到则新建 ShowNewFrm(MDIChildFormName) Else

'在打开的窗体中检测到则激活

Dim MDIChildFrm As Form4 = CType(MIDIfrm.MdiChildren(x), Form) MDIChildFrm.Activate() End If End If End Sub

对于前面介绍的功能,我们可以在工具栏按钮“学生信息”的Click事件处理程序中使用下面的语句防止加载多个重复子窗体。

CheckForm(frm1, \学生信息表\

20

VB.NET开发技术实验指导书

实验八 文件处理

一、实验目的与要求

1.熟悉使用System.IO模型访问文件的主要方法,进一步理解使用Directory类、File类、FileStream类操作文件的具体方法。

2.了解StreaemWriter类、StreamReader类、BinaryWriter类和BinaryReader类访问文件的过程。

二、实验内容

练习1:编写一个对C盘根目录下的子目录和文件进行操作的程序。

程序的设计界面如图8-1所示,程序的运行界面如图8-2所示。程序运行时将在ListBox1中显示C盘根目录下的所有子目录名称,用户可以从中选择一个或多个子目录,选中后按【删除】按钮将删除选中的子目录。用户也可以在文本框中输入要创建的子目录名,输入后按【创建】按钮将在C盘根目录下创建相应的子目录。程序运行时在ListBox2中显示C盘根目录下的所有文件名,用户选择一个或多个文件后按【删除】按钮将删除选中的文件。

图8-1 程序设计界面

图8-2 程序运行界面

练习2:替换文件中的某个字符。

某同学用英文写了一篇文章,由于失误,他把所有的“$”字符写成了“%”字符,请编写一个程序改正该同学的错误,即把文件中的所有的“%”字符改成“$”字符。假设该同学所写文章的文件名为EXAM.TXT。原文如图8-3所示,修改后的文章如图8-4所示。

21


《VB开发技术》课程实验指导(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:山东大学幼儿园青岛蓝谷幼儿园人员招聘计划和岗位表

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: