2011-04-19 2 views
0

가능한 중복 :
Referencing control on one form from another form VB.NET두 양식 간의 변수를 기억하는 방법은 무엇입니까?

이 내 마지막 질문 다음 질문입니다. 그것의 마지막 오늘 : D 두 가지 형태가있을 때. 하나는 전체 응용 프로그램과 함께 메인이고 두 번째 것은 설정을위한 것입니다. Form2에 하나의 변수를 설정하고이 양식을 닫은 후에 form2에서이 변수를 가져 오려면 Form1이 필요합니다. 이 변수를 전송하는 가장 쉬운 방법은 무엇입니까?

+3

snarky는 들리지 않지만 .NET에서 객체 지향 프로그래밍에 대한 책을 선택해야합니다. 여러분이 묻는 질문은 매우 기본이며 Stack Overflow에 대한 기본적인 질문을 할 수는 있지만 매우 중요한 세부 사항은 생략하고 있습니다. 새로운 언어를 배울 때 어떤 일이 벌어지고 있는지 이해하는 것이 중요합니다. 많은 답변이 나쁜 습관을 가르치고 있습니다. –

답변

0

Form2의 부동산 만들기 (폼의 닫기 경우에, 예를 들어)을 Form2의 속성 설정

public MyType MyVariable { get; set; } 

을 ...

this.MyVariable = ...; 
... 그리고의 속성을 읽어 Form1에 :

... 
myForm2Instance.ShowDialog(); // this is where you show Form2 
var theValueFromForm2 = myForm2Instance.MyVariable; 
+0

Hmmm .... "public MyType MyVariable {get; set;}"어딘가에 form2 ..... form2에 MyVariable을 선언했지만 여전히 form1에서 값을 가져올 수 없습니다 ...... 무슨 뜻인가요? myForm2Instance? 미안 해요, 나는 초보자입니다. – Nasgharet

+0

@Nasgharet : 어떻게 Form2를 열어 주나요? – Heinzi

+0

양식 form2 = 새 양식(); form2.Show(); – Nasgharet

0

방법을 Form2에 공용 속성에 값을 저장하는 것입니다 (안 최고의 불구하고)있는 다음 할 수있는 가장 쉬운 Form1에서 액세스 할 수 있습니다.

0

정보를 생성자의 Form2에 전달하고 정보를 노출하는 Form2의 속성을 가질 수 있습니다. 그런 다음 Form2를 완료하면 Form1 안에 myForm2.ThePropertyThatHasTheData를 말할 수 있습니다.

0

당신의 두 가지 형태가 도면 참조하십시오. 따라서 모델 클래스 만 있으면됩니다.

()라는 모델 클래스를 만들거나 비슷한 는

모델 m = 새로운 모델을 Form1에서 공용 속성을 호출 설정 또는 비슷한

인스턴스화 모델을 만들기;

생성자 또는 형식 전용 멤버를 설정하는 동안 모델을 Form2에 전달합니다.

Form2 f = new Form2();

f.Model = m;

f.ShowDialog();

설정이 form2의 텍스트 상자라고 가정 해 봅니다. 양식을 닫기 전에 설정을 구성하십시오.

Model.Setting = this.textBoxSetting.Text();

모델은 개체이며 참조로 전달되므로 form1의 모델 개체는 참조 된 개체이기 때문에 자동으로 업데이트됩니다.

응용 프로그램에서 데이터를 공유하려면 응용 프로그램 당 하나의 모델 만 사용되는 경우 모델을 정적으로 만들거나 싱글 톤 패턴을 따르는 것이 좋습니다.

관련 문제