2011-03-23 6 views
0

하나의 텍스트 상자 값을 다른 양식의 다른 텍스트 상자로 옮기려고합니다.다른 양식의 텍스트 상자에 텍스트 값을 전달하는 방법은 무엇입니까?

private SecondForm secondForm; 
public void SecondFormTextBox() 
{ 
    uname.Text = secondForm.uname.Text; 
} 

형태의 2에서 나는 다음과 같은 코드를 가지고 :

양식 1에서 나는 다음과 같은 코드가 있습니다.

public TextBox uname 
{ 
    get 
    { 
     return uname; 
    } 
} 

다음 오류가 표시됩니다. 도움을 받으실 수 있습니다.

오브젝트 참조 'WindowsFormsApplication1.AdministratorHome.uname' 사이 대한 비 정적 필드, 메소드 또는 속성 'WindowsFormsApplication1.AdministratorHome.uname.get'

모호성을 필요

'WindowsFormsApplication1.AdministratorHome.uname'

+1

여러 번 중복 ... –

+0

가능한 중복 [C# 초보자 도움, 어떻게 부모 폼에 자식 값을 전달합니까?] (http://stackoverflow.com/questions/280579/c-beginner) -help-how-do-i-pass-a-value-from-a-child-back-to-the-parent-form) –

+0

uname (등록 정보 메소드) 호출에서, 동일한 속성의 값은 다소 반복적이므로 컴파일되지 않습니다. –

답변

4

버튼을 눌렀을 때 form1의 textBox에서 값을 form2의 textBox로 전달하는 경우를 예로 들어 보겠습니다. 코드 : 당신이 secondForm에 인스턴스를 생성하는 것처럼

//form1: 
Form2 form2; 

private void button1_Click() 
{ 
    if(form2 == null) 
    { 
     form2 = new Form2(); 
     form2.Show(); 
    } 
    form2.PassToForm2(textBox1.Text); 
} 

//form2: 
private void PassToForm2(string msg) 
{ 
    textBox1.Text = msg; 
} 

는 희망이 도움이, 당신이 제공 한 코드에서 미챠

1

위의 코드 조각에서 get 속성은 자체를 참조합니다. 그게 의 나쁜 아이디어 (tm)입니다. 당신은 텍스트 값을 얻고 싶은 경우에, 당신과 같이 재산의 어떤 것 :

public string TextBoxText 
{ 
    get { return myTextBox.Text; } // myTextBox is the symbol for your text box 
} 

그리고 다른 형태로 할 수있는 간단한 액세스 속성을 통해 텍스트. 다음 코드 예제에서는 두 번째 폼 변수에 인스턴스를 할당하지 않았습니다. 그것은 null입니다.

0

우선 TextBox uname에는 설정자가 없거나 적어도 붙여 넣지 않았습니다.

두 번째로 Form1secondForm 속성을 Form2의 인스턴스로 설정합니까 (예 : 생성자에서)?

0

, 그것은 보이지 않는다. 그렇게하는 경우 더 많은 코드를 제공 할 수 있습니까?

관련 문제