如何知道哪个表单在vb.net中称为另一个表单?

时间:2010-07-31 06:14:51

标签: vb.net

我在提供“查找”按钮时有多个表单。我有的表单是Contacts.vb和Users.vb,我想对这两种表单使用单个Find.vb表单。我的意思是用户是否按下Contacts.vb或Users.vb中的查找按钮,应该打开相同的表单,并使用从数据库中提取的相应数据。

我尝试使用Users.vb中的Find.Owner = Me,但我不知道如何从Find.vb中确定谁是所有者。

我尝试使用,如果查找表单的所有者是Users.vb然后从users表中获取数据,如果owner是Contacts.vb,则从Contacts表中获取数据。 不幸的是,我无法执行此任务。

请提供任何适当的解决方案或任何其他建议来执行此操作。 在此先感谢

3 个答案:

答案 0 :(得分:8)

使用以下方式致电您的孩子:

frmChildren.ShowDialog(Me)

现在,如何知道调用父表单的表单? 使用:

Me.Owner.Name

例如......

if Me.Owner.Name = "frmMain" then
   MessageBox.Show("YES! Its called from frmMain")
else
   MessageBox.Show("Its called from " & Me.Owner.Name)
End If

也许你需要这个:

'To call your form Find.vb from a command button. (for example)
Find.ShowDialog(Me)

'How to know which form call to Find.vb ?
If Me.Owner.Name = "Contacts" then
   'Actions for Contacts
ElseIf Me.Owner.Name = "Users" then
   'Actions for Users
else
   'Actions for NOT"Contacts" and NOT"Users"
end if

答案 1 :(得分:2)

您应该按如下方式向“查找”表单添加属性:

Private findTypeValue As FindType
Public Property FindType As FindType
Get
Return findTypeValue
End Get
Set (value as FindType)
findTypeValue = value
End Set

为该属性创建枚举:

Public Enum FindType As Integer
Contacts = 0
Users= 1
End Enum

然后在查找表单中检查类型:

If FindType = FindType.Contacts Then
...
Else

End If

答案 2 :(得分:1)

向子表单添加属性(例如“PersonType”) - 在显示表单之前从父表单设置 - 然后在子表单中使用此属性的值来执行正确的搜索类型。