我在提供“查找”按钮时有多个表单。我有的表单是Contacts.vb和Users.vb,我想对这两种表单使用单个Find.vb表单。我的意思是用户是否按下Contacts.vb或Users.vb中的查找按钮,应该打开相同的表单,并使用从数据库中提取的相应数据。
我尝试使用Users.vb中的Find.Owner = Me
,但我不知道如何从Find.vb中确定谁是所有者。
我尝试使用,如果查找表单的所有者是Users.vb然后从users表中获取数据,如果owner是Contacts.vb,则从Contacts表中获取数据。 不幸的是,我无法执行此任务。
请提供任何适当的解决方案或任何其他建议来执行此操作。 在此先感谢
答案 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”) - 在显示表单之前从父表单设置 - 然后在子表单中使用此属性的值来执行正确的搜索类型。