十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在 VB.NET 中,你编好的窗体仅仅是一个类而已,不像 VB6,窗体本身就是一个对象。就是说,如果要显示窗体,你需要将你编的窗体类实例化对一个对象,然后再调用这个对象:
成都创新互联成立于2013年,是专业互联网技术服务公司,拥有项目成都做网站、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元永德做网站,已为上家服务,为永德各地企业和个人服务,联系电话:18982081108
Dim frm As New frmDlg ' 将 frmDlg 窗体类实例化为对象 frmfrm.Show() ' 将实例化的对象显示出来
调用窗口的函数增加一个List参数,List记录要在gridview中显示的列。
比如你用ShowDialog之类的方法调用窗口,那么不要用系统默认的,自己写一个ShowDialogWithGrid函数取代;
含有gridview的窗口接受此函数调用的时候,对gridview重新初始化,然后再调用系统显示窗体方法ShowDialog
一、带窗体的dll创建
1、先新建 类库(testdll),在项目中添加两个窗体form1(主窗体)、form2,为了与后面的调用区分分别命名为fm1,fm2;并在fm1窗体中添加一个按钮用来调用fm2如下图
2、在fm1窗体代码中先引用fm2, 按钮代码调用fm2.如图
3、生成dll,(class1.vb中不需要写任何代码)
二、调用dll
1、新建 一个windows应用程序并添加一个按钮用来调用dll中的窗体,选 择 “项目”-“添加引用”,选择刚才创建的testdll
2、窗体代码中先引用testdll,再定义一个testdll中的fm1对象,最后执行对象的show方法
3、运行结果如下:
首先引入那个项目的命名空间,在代码最上方用Imports语句,比如
Imports Project1
然后在需要用的地方写
Dim aform As New MyForm1()
然后通过aform对象的Show方法(弹出普通窗口)或ShowDialog(弹出窗口时后方窗口无响应)方法来显示窗口,最后调用Dispose方法释放对象内存。
分析:窗体之间的数值传递有3种方案。分别是通过公共变量、接口和事件委托。我给你说说通过接口来在窗体之间传递数据吧。
显示"第一位成绩":从form2传值到form1,显示排序,需要传递一个datatable.
为了方便起见,这两个数据都从datatable里面来。
1、首先定义一个公共接口(新建项)(假设传递的是
Public Interface ITransferText
Sub 数据传输(ByVal tText As datatable)
End Interface
2、在form2和form3中加入代码:
Private 数据发送 As ITransferText
Sub New(ByVal iTrans As ITransferText)
Me.iTransferLink = iTrans
InitializeComponent()
End Sub
‘在form2和form3的一个按钮事件中加入:
数据发送.数据传输(dt)
me.dispose
'当然,你需要在这之前将需要传输的东西装类型为datatabe的变量dt中。
3、在form1中加入代码:
(1)Public Class Form1
Implements ITransferText
(2)、sub…点击后form2显示,通过form2操作生成第一位成绩事件…
Dim newFrm As New Form2(Me)
newFrm.Show()
end sub
、sub…点击后form3显示,通过form3操作生成绩列表,然后传递…
Dim newFrm As New Form3(Me)
newFrm.Show()
end sub
(3)当然你还需要在form1中用个方法实现接口
Sub 数据接收(ByVal dt As datatable) Implements ITransferText.数据传递
这里如果dt只有1行1列就更新你的第一名成绩
如果多行,就再你的form1上显示这个表dt就行了。
end sub
VB.NET 里面会有一个main方法表示函数的入口
main方法的参数就是命令行传给它的
shutdown.exe能直接调用是因为你的环境变量有C盘的windows目录
你只要在你程序的输出目录(一般为bin)里面打开命令行输入程序名称.exe就可以直接执行你的窗体
如果你要调试输入命令的效果,你打开你项目的属性,找到调试里面的命令行参数,在里面输入测试参数就能在你main函数里面看到结果了
那如果你想打开任何命令行都可以执行你的窗体程序,那你把你程序的安装目录设置为环境变量,这样就可以直接执行这个命令了