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

2019-07-13 17:54

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

图8-3 修改前文件的内容

图8-4 修改后文件的内容

三、操作步骤

练习1:

(1)根据题目要求,设计窗体界面及各控件的属性值。 (2)编辑各事件过程和通用过程。 (3)调试、运行程序。 参考程序:

Imports System.IO Public Class Form1

Inherits System.Windows.Forms.Form

Private Sub DispDir() Dim i As Integer

Dim str1() As String ListBox1.Items.Clear()

str1 = Directory.GetDirectories(\ For i = 0 To str1.Length - 1

Me.ListBox1.Items.Add(str1(i)) Next i End Sub

22

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

Private Sub DispFile() Dim i As Integer

Dim str2() As String ListBox2.Items.Clear()

str2 = Directory.GetFiles(\ For i = 0 To str2.Length - 1

Me.ListBox2.Items.Add(str2(i)) Next i End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim str1() As String

If (TextBox1.Text <> \

Directory.CreateDirectory(\ End If

DispDir() End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load DispDir() DispFile() End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim i As Integer

For i = ListBox1.SelectedItems.Count - 1 To 0 Step -1 Directory.Delete(ListBox1.SelectedItems(i).ToString()) DispDir() Next i End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim i As Integer

For i = ListBox2.SelectedItems.Count - 1 To 0 Step -1 File.Delete(ListBox2.SelectedItems(i).ToString()) DispFile() Next i End Sub End Class

23

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

练习2:

该练习的操作步骤与上一题相似,在此省略。 参考程序:

Imports System.IO Public Class Form1

Inherits System.Windows.Forms.Form

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim a As Integer, ch As Char

Dim MyFile As New FileStream(\ a = MyFile.ReadByte() TextBox1.Text = \ Do While (a <> -1) ch = Chr(a)

TextBox1.Text += ch a = MyFile.ReadByte() Loop

MyFile.Close()

End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim a As Integer, ch As Char

Dim MyFile As New FileStream(\FileAccess.ReadWrite)

a = MyFile.ReadByte() Do While (a <> -1) ch = Chr(a)

If (ch = \

MyFile.Seek(-1, SeekOrigin.Current) MyFile.WriteByte(Asc(\ End If

a = MyFile.ReadByte() Loop

MyFile.Close() End Sub End Class

24

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

实验九 创建.NET控件

一、实验目的与要求

1. 掌握组件的设计

2. 熟悉用户自定义控件的创建过程,并且能从现有控件中继承。

二、实验内容

练习1:创建一个限制所选项数量的复选列表框

在本示例中创建的复选列表框继承CheckedListBox内置控件,并且对它进行了扩充。为了扩展该自定义控件的功能,下面创建一个MaxSelectedItems属性。该属性将保存最多可以选择的列表的项数。当用户选取一个列表项时,触发的事件会监控是否已经达到了最大值。如果超过最大值,那么选择将被阻止,并触发一个事件。下面是创建该用户自定义控件的过程。

创建一个名为LimitedCheckedListBox的Windows控件库项目。之后打开代码编辑器窗口,在代码行的类顶部导入命名空间System.ComponentModel并修改类的声明:

Imports System.ComponentModel Public Class LimitedCheckedListBox

Inherits System.Windows.Forms.CheckedListBox

接下来添加控件特定的代码。首先需要实现MaxSelectedItems属性,用一个模块级变量来保存该属性值,然后为属性自身创建代码,如下所示:

Private mnMaxSelectedItems As Integer = 5

Return mnMaxSelectedItems End Get

Set(ByVal Value As Integer) If Value < 0 Then

Throw New ArgumentException(\该属性值无效!\ Else

mnMaxSelectedItems = Value End If End Set End Property

上述语句将MaxSelectedItems属性的默认值设置为5,并且设置属性的文字说明。下面需要声明当用户选择的列表项大于5时触发的事件。将该事件命名为MaxItemsExceeded,其代码如下:

Public Event MaxItemsExceeded(ByVal sender As Object, ByVal e As EventArgs)

然后需要在用户单击列表项时引发的事件例程中插入代码。在LimitedCheckedListBox的ItemCheck事件中插入下列代码:

Private Sub LimitedCheckedListBox_ItemCheck(ByVal sender As Object, _

ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles MyBase.ItemCheck

25

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

If (Me.CheckedItems.Count >= mnMaxSelectedItems) And _

(e.NewValue = CheckState.Checked) Then RaiseEvent MaxItemsExceeded(Me, New EventArgs) e.NewValue = CheckState.Unchecked End If End Sub

最后生成项目,创建一个包含LimitedCheckedListBox控件的DDL文件。如果要使用LimitedCheckedListBox控件,只需将该控件添加到Windows窗体中即可像其他控件一样应用。

练习2:创建一个复合的UserControl

首先创建一个Windows控件库项目,并将其命名为SelectCoboControl,在生成的类文件中,将类的名称该为SelectCoboControl。进入控件的设计窗口,将两个按钮(BtnAdd和BtnRemove)和两个列表框(LstSource和LstTarget)添加到控件上,如图9-1所示。

图9-1 符合的UserControl控件

然后分别为两个按钮添加单击事件的代码,如下所示:

Private Sub BtnAdd_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles BtnAdd.Click Dim objItem As Object

For Each objItem In LstSource.SelectedItems LstTarget.Items.Add(objItem) Next objItem End Sub

Private Sub BtnRemove_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles BtnRemove.Click Dim nIndex As Integer

For nIndex = LstTarget.SelectedItems.Count - 1 To 0 Step -1 LstTarget.Items.Remove(LstTarget.SelectedItems(nIndex)) Next nIndex End Sub

上述代码表示当单击BtnAdd按钮时将LstSource列表框中选中的项添加到LstTarget列表框中;当单击BtnRemove按钮时将LstTarget列表框中选中的项删除。

接下来需要创建复合控件的公共属性和方法。在该示例中,为复合控件添加了4个属性和1个方法。

Public ReadOnly Property SelectedItem(ByVal iIndex As Integer) As Object Get

Return LstTarget.Items(iIndex) End Get

26


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

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

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

马上注册会员

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