2010-07-31 3 views
0

제공되는 찾기 단추가있는 양식이 여러 개 있습니다. 내가 가지고있는 양식은 Contacts.vb와 Users.vb이고, 나는이 두 양식 모두에 대해 단일 Find.vb 양식을 사용하고자합니다. 나는 사용자가 Contacts.vb 또는 Users.vb에서 찾기 단추를 누를 지 여부는 동일한 양식을 데이터베이스에서 가져온 해당 데이터로 열어야한다는 것을 의미합니다. vb.net에서 다른 양식을 호출 한 양식을 아는 방법은 무엇입니까?

나는 Users.vb에서 Find.Owner = Me를 사용하여 시도하지만 난 사람이 소유자임을 Find.vb에서 확인하는 방법을 모르겠어요.

내가 사용하려고 찾기 형태의 소유자가 Users.vb 다음 사용자 테이블에서 데이터를 가져올 경우 그와 소유자는 Contacts.vb는 다음 연락처 테이블에서 데이터를 가져올 경우. 아쉽게도이 작업을 수행 할 수 없습니다.

이 작업을 수행 할 수있는 적절한 해결책이나 제안 사항을 제공해주십시오. 미리 감사드립니다.

답변

1

하위 양식에 속성 (예 : PersonType)을 추가하십시오 - 양식을 표시하기 바로 전에 부모로부터 설정 한 다음 하위의이 속성 값을 사용하여 올바른 검색 유형을 수행하십시오 .

당신은 다음과 같이 양식을 찾기 속성을 추가해야
2

:

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

을 그리고 속성에 대한 열거를 만듭니다

If FindType = FindType.Contacts Then 
... 
Else 

End If 
7
:

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

그런 다음 찾기 형태의 유형을 확인

다음을 사용하여 자녀의 서식에 전화하십시오 :

frmChildren.ShowDialog(Me) 

이제 부모 양식으로 호출 된 양식을 확인하는 방법은 무엇입니까? 사용 :

'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 
:

예를 들어
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 

은 어쩌면 당신은 정확히이 필요
관련 문제