vb.net入门——使用Windows窗体实现自定义对话框


上一章,我们学了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窗体中的菜单操作

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3