Public?Sub?载入窗体()?'在类中公有方法要明确Public
Dim?frm?As?New?Form1?'在Windows应用程序项目中系统隐含生成了一个Form1类的同名对象,其实你直接引用的是隐含的Form1对象,而不是看得着的那个Form1窗口类.
'而在这种工程类型中列表中没有列出来,应该是没有的,所以的用代码生成Form1的实例.
frm.Show()
End?Sub
直接添加一个MID父窗体或在已有窗体的属性中找到IsMDIContainer属性,然后设置为True,然后创建第二个窗体 ,需要加载子窗体的时候:
NewMDIChild.MdiParent = Me
NewMDIChild.Show()
Public?Shared?Sub?CheckMDIChildForm(ByVal?MDIForm?As?Windows.Forms.Form,?ByVal?MDIChildForm?As?Windows.Forms.Form,?ByVal?MDIChildFormName?As?String)
If?MDIForm.MdiChildren.Length?1?Then
'如果没有任何一个MDI子窗体,则创该MDI子窗体的窗体实例
Dim?MDIChildFrm?As?Windows.Forms.Form?=?MDIChildForm?'?定义MDI子窗体
MDIChildFrm.MdiParent?=?MDIForm?'指定父窗体
MDIChildFrm.Show()?'打开窗体
Exit?Sub
Else
Dim?x?As?Integer
Dim?frmyn?As?Boolean
For?x?=?0?To?(MDIForm.MdiChildren.Length)?-?1
Dim?tempChild?As?Windows.Forms.Form?=?CType(MDIForm.MdiChildren(x),?Windows.Forms.Form)
If?tempChild.Name?=?MDIChildFormName?Then
'检测到有该MDI子窗体,设为激活?并退出循环
frmyn?=?True
tempChild.BringToFront()
Exit?For
frmyn?=?False
End?If
Next
If?Not?frmyn?Then
'在打开的窗体中没检测到则新建
①.、如果你有QQ的源代码,可以做成一个完整的程序
vb.net调用子程序是一样的,只是对于一些系统事件或过程,都是有参数的,你必须加上参数
这里觉得没有区别,是因为在SubAddRow 里,我们并没有试图改变形参 t 本身,我们所做的改变都是 t.Rows,我们为 t 添加了行.
对于形参和实参而言,在ByVal 模式下 temTable 和 t 指向了同一块内存,但是这两个变量本身并不在同一个地址上.在改变 t.Rows时,由于二者都指向同一块内存,所以更改了t.Rows里的行数据;
在ByRef模式下,temTable 和 t 就是同一块内存,二者在一个地址上,肯定也就指向同一块内存,在改变 t.Rows时,就是对 temTable 的改变.
在此举个例子:假设我们需要将 temTable 清空,那么我们还是以 t 作为形参,我们可以这样写:
'?ByVal?方式传参
Private?Sub?ClearRow(ByVal?t?As?DataTable)
t?=?Nothing
'?ByRef?方式传参
Private?Sub?ClearRow(ByRef?t?As?DataTable)
'?并且这样调用
ClearRow(temTable)
DataGridView1.DataSource?=?temTable
这样,就是有区别的了.ByVal方式时,虽然 t 被置为 Nothing ,但是由于 t 和 temTable 并不是一个变量,并不在同一个地址上,所以 temTable 没有变.
而 ByRef 时,t 和 temTable 就是同一个变量,在同一个地址上,t = Nothing的同时,temTable 也就是Nothing了.
如果这个解释还不清楚,可以追问.
以上就是土嘎嘎小编为大家整理的VB.NET添加子程序相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!