2010-08-09 4 views
0

부모 대화 상자에 표시되는 값을 변경하는 대화 상자가 vb6에 있습니다.VB6의 부모 대화 상자에 대한 액세스 제어

x1은 부모 대화 상자의 txt_c1 텍스트에 표시되며 텍스트 상자에 대해서도 txt_1validate 함수가 있습니다. 이제 txt_c1 txtbox의 값을 자식 대화 상자에서 변경하고 validate 함수를 호출하려고합니다. 그러나 문제는 자식 대화 상자에서 txt_c1을 사용할 수 없다는 것입니다.

+0

당신은 당신이 무엇을 의미하는지 설명하는 몇 가지 코드를 게시 할 수 있습니다하십시오 아이 호출하는 코드? –

+0

main.frm은 텍스트 상자 txc1이 포함 된 메인 대화 상자이며 기본 폼의 단추는 Form1.frm을 엽니 다. 이제 사용자가 Form1의 버튼을 누르면 txc1 텍스트 상자의 값이 변경되고 해당 validate 메소드가 호출되어야하지만 txc1은 from1.frm에서 사용할 수 없습니다. – PUG

+0

알았지 만 실제 코드를 볼 필요가 있다고 생각합니다. 예를 들어, 자식 폼과 validate 이벤트를 호출하는 코드 덩어리. 양식을 호출하는 방법을 보지 않고도 부모에게 액세스 할 수없는 이유를 쉽게 알 수 없습니다. –

답변

1

양식 단지 클래스이고, 따라서 명시 적으로 인스턴스화 할 수 있습니다 (그리고 당신이 자동으로 인스턴스를 사용하는 대신한다면 당신은 아마 여러분의 인생을 더 쉽게 찾을 수 있습니다 내가 MS VB 6.0 IDE에서 VB6에서 작업하고 있습니다 VB6에서는) 폼에 대한 참조를 할당 할 수 있습니다.

부모 대화 상자의 인스턴스로 설정 한 Form 형식의 자식 대화 상자 (Form1.frm)에 공용 속성을 만들어 문제를 해결하면 부모 대화 상자의 컨트롤 및 메서드에 액세스 할 수 있습니다. 어린이.

내 VB6 (그리고 내가 사용할 수있는 설치된 인스턴스가없는) 약간 녹슨 그래서 이것은 실제, 올바른 코드 될 수 없습니다 -하지만 다음의 라인을 따라 뭔가에

작동합니다 자식 대화 상자에서 다음

Form childDialog = new Form1 
childDialog.Parent = this 
childDialog.ShowModal 

:

Parent.txt_c1 = newValue 
if not Parent.Validate then 
... 
end if 
+1

VB6에서 나쁘지 않은 시도는 C#으로 옮겼습니다. 나는 당신이 무언가를 의미한다고 생각합니다. Dim childDialog As Form1 : Set childDialog = New Form1 : Set childDialog.Parent = Me : childDialog.Parent.Show vbModal' 그리고 나서'Parent.txt_c1.Text = newValue : If Parent.Validate Then' 나는 또한 jaminator가'txt_1validate'을 만들 필요가 있다고 생각할 것입니다. – MarkJ

+0

Murph 님의 답변에 감사드립니다. 제 이름은 attachmentsFrm이고 폼 인스턴스 = 새 첨부 파일입니다. 오류가 발생했습니다. – PUG

+0

맙소사 Mark and Murph – PUG