上一章,我们学了vb.net入门——Windows 窗体中的提示对话后,一定会怎么使用vb.net中的对话框了吧,但是很多情况下,vb.net预定义的对话框并不能满足我们的需要,
比如在一些前台营业的管理软件中需要弹出交款的对话框,该对话框需要向用户显示应缴纳的金额,并返回用户输入的收款金额以及应找的零钱,还有类似于员工管理软件,需要在一个对话框中输入员工的信息等,譬如这样的对话框都是需要我们使用Windows窗体来自定义的。
下面我们就通过一个实例来演示如何自定义对话框,该对话框要实现的功能是:通过对话框来实现一个简单货物档案的输入,要求输入货物名称、数量、单价。
一、创建一个能实现该功能的对话框的类
1、创建一个称为“GoodsDialog”的 Windows 应用程序
2、首先添加一个名为"GoodsDialog"的Form窗体。
3、从工具箱中拖放三个Lable控件,它们的Text属性分别为:货物名称、货物数量、货物单价。
4、从工具箱中拖放三个Textbox控件,第一个的Name为"GoodsName",Text属性为"货物名称",第二个的Name为"GoodsNum",Text属性为"货物数量",第二个的Name为"GoodsPrice",Text属性为"货物单价"。
5、从工具箱中拖放两个Button控件,一个的Name为"OK",Text属性为"确认",并将它的 DialogResult 属性设置为“OK”。第二个的Name为"Cancel",Text属性为"取消",并将它的 DialogResult 属性设置为“Cancel”
控件在窗体上的位置排列如下图一所示:
图一:各个控件的位置图示
6、为 Button 控件的每个 Click 事件创建一个事件处理程序,以关闭窗体,代码如下:
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
Me.Close()
End Sub
Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
Me.Close()
End Sub
7、在窗体代码编辑区的头部位置找到该类的声明位置,确认它的类声明是如下代码:
Public Class GoodsDialog
如果不是,请修改成上面的声明代码
8、创建一个名为 GoodsCoordinates 的新类,在该类中添加如下代码:
Public Name As String
Public Num As Integer
Public Price As Decimal
9、返回“GoodsDialog”的代码编辑器中,在其中添加如下代码:
Public ReadOnly Property GoodsCoordinates() As GoodsCoordinates
Get
Dim gc As New GoodsCoordinates
gc.Name = Me.GoodsName.Text
gc.Num = CInt(Me.GoodsNum.Text)
gc.Price = CDec(Me.GoodsPrice.Text)
Return gc
End Get
End Property
二、显示创建的对话框并使用对象检索数据
好了,经过上面的操作,我们已经把一个自定义的对话框做好了,下面就是通过一些必要的代码来使用它返回的数据。
1、向我们的项目中添加一个新的模块(Module1)。
2、建立一个检索数据的过程,执行以下操作:
显示对话框的一个实例,并创建一个引用变量,来引用用户输入到对话框中的数据。
通过添加代码将包含对话框信息的属性值赋予您的引用变量。将此代码添加到确定该对话框的结果的代码之后。
使用应用程序中的对象提供的数据。
代码如下:
Public Sub DisplayGoodsDialogBox()
Dim dlg As New GoodsDialog
dlg.ShowDialog()
If dlg.DialogResult = DialogResult.OK Then
'检索窗体返回的按钮信息,这里表示按的是OK按钮
Dim gc As GoodsCoordinates
gc = dlg.GoodsCoordinates
MessageBox.Show("货物名称:" & gc.Name.ToString & vbCr & _
"货物数量:" & gc.Num.ToString & vbCr & "货物单价:" & gc.Price.ToString)
End If
End Sub
3、然后向Module1中添加主过程Sub Main(),并把它设置为启动对象,代码如下所示:
Sub main()
DisplayGoodsDialogBox()
End Sub
OK,代码已经写完了,现在我们按F5启动测试,首先会弹出如下的窗体:
图二:弹出了自定义的对话框
然后在对话框中输入如下图三所示的正确信息:
图三:在自定义的对话框中输入信息
点击确认,则弹出返回的信息,如下图五所示:
图四:返回检索的信息
这个示例只是一个简单的功能实现,我们还可以在代码中添加货物数量的检查,货物单价的检查,使其输入符合标准格式,还可以添加更多的功能进去。
我们这章到这里就结束了,下章请看:vb.net入门——Windows窗体中的菜单操作
本文作者: