2011-10-17 8 views
2

나는 여러 개의 컨트롤로 구성되어 있지만 더 구체적으로는 두 개의 textBoxes으로 구성된 창 폼 응용 프로그램이 있습니다. 그 중 하나는 읽기 전용입니다. 읽기 전용 textBox 값은 사용자가 입력 할 수있는 textBox과 같아야합니다.입력 컨트롤을 사용하지 않고 텍스트 상자 업데이트

따라서 사용자가 textBox A에 "Hello World"를 입력하면 textBox B의 값이 자동으로 "Hello World"로 업데이트되어야합니다.

어떻게해야합니까? 텍스트 값을 설정해야한다는 것을 알고 있습니다. 버튼을 클릭하거나 그 라인을 따라 무언가가 실행될 때 자동으로 실행되도록 코드를 배치하는 위치를 모르겠습니다.

+3

Windows 양식 응용 프로그램? 내가 jQuery와 관련이 있다는 것을 알지 못합니까? – Ari

+0

질문에서 "Windows Form"이 어떻게 표시되는지 알 수 없습니다. –

+0

@HenkHolterman : "양식 신청서가 있습니다."는 힌트입니다. –

답변

2

당신이 textBoxB 즉시 textBoxA의 텍스트가 이벤트의 TextChanged (즉 즉시 사용자 프레스 textBoxA의 핵심 후) 변경으로 업데이트하려면 : 당신이를 업데이트하려는 경우

this.textBoxA.TextChanged += new System.EventHandler(this.textBoxA_TextChanged); 

    private void textBoxA_TextChanged(object sender, EventArgs e) 
    { 
     textBoxB.Text = textBoxA.Text; 
    } 

을 winform의 데이터 바인딩을 사용

this.textBoxA.Leave += new System.EventHandler(this.textBoxA_Leave); 

    private void textBoxA_Leave(object sender, EventArgs e) 
    { 
     textBoxB.Text = textBoxA.Text; 
    } 
+0

고맙습니다. :) – Ari

5

TextChanged 이벤트 :

private void textBox1_TextChanged(object sender, EventArgs e) 
     { 
      textBox2.Text = textBox1.Text; 
     } 
+1

아, 당신은 3 초 만에 나를 때린다. –

+1

게다가, 'textBox'에 이벤트를 등록하는 것을 잊지 마라. – Otiel

2

이것은 당신이 무엇을해야한다는 : 즉

writableTextBox.TextChanged += delegate { 
    readonlyTextBox.Text = writableTextBox.Text; 
}; 

, 때마다 텍스트 :

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
textBox2.Text = textBox1.Text; 
} 
4

그것은 당신이 뭔가를 원하는 같은 소리 한 텍스트 상자가 변경되면 다른 텍스트 상자가 업데이트됩니다. 이것은 Control.TextChanged 이벤트를 사용합니다.

+0

좋은 한 줄 솔루션. _happyguy_가 이벤트가 무엇인지 이해하는 가장 간단한 것은 아닙니다 :) – Otiel

+0

@Leito : OP가 이미 이벤트에 대해 알지 못한다고 가정합니까? –

+0

나는 그렇다고 가정한다. 'TextChanged'는 내가 이벤트를 배울 때 마주 친 첫번째 이벤트 중 하나입니다. 하지만 내가 잘못 될 수 있습니다 :) – Otiel

0

에도 짧은 (더 좋은?) 이벤트 접근 방식보다 : 사용자가 textBoxA을 편집을 완료 한 후에 만 ​​textBoxB 텍스트, 당신은 Leave 이벤트를 사용해야합니다. InitializeComponents 전화 바로 다음에 바로 사용하십시오 :

readonlyTextBox.DataBindings.Add("Text", writableTextBox, "Text"); 
관련 문제