2014-01-13 2 views
2

jQuery (비슷한 here 발견)에 비슷한 질문이 왔으며 C#의 필요에 따라 수정하려고했지만이를 관리하지 못했습니다. 내가 원한 것은 제목이 말하는 것입니다. 한 텍스트 상자에 텍스트를 입력하고 결과를 다른 텍스트 상자에 동시에 표시하고자합니다. 여기에 제 작업이 있습니다 (분명히 작동하지 않습니다). 두 번째 이벤트의 첫 번째 텍스트 상자에있는 KeyUp 이벤트의 인수를 전달하려고 시도했지만, 그렇게 쉽지는 않은 것처럼 보입니다.두 개의 텍스트 상자에 simulatenously 입력하십시오.

public mainFrm() 
{ 
    InitializeComponent(); 

    this.txtFormat.KeyUp += new KeyEventHandler(txtFormat_KeyUp); 
    this.txtNewFormat.KeyUp += new KeyEventHandler(txtNewFormat_KeyUp); 
} 

private void txtFormat_KeyUp(object sender, KeyEventArgs e) 
{ 
    txtNewFormat_KeyUp(sender, e); 
} 

private void txtNewFormat_KeyUp(object sender, KeyEventArgs e) 
{ 
} 

미리 도움을 주셔서 감사합니다.

+0

사용자가 두 텍스트 상자에 모두 입력 할 수 있어야합니까? 사용자가 두 번째 텍스트 상자에 입력하는 경우 어떻게해야합니까? –

+0

사용자는 두 개의 텍스트 상자에 모두 입력 할 수 있습니다. 그러나 위에 게시 한 내용은 사용자가 첫 번째 텍스트 상자에 입력 할 때만 발생해야합니다. –

답변

2

에 현재 상태를 전달하는 것입니다 동기화 :

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    protected override void OnLoad(EventArgs e) 
    { 
     base.OnLoad(e); 
     textBox1.TextChanged+=new EventHandler(textBox_TextChanged); 
     textBox2.TextChanged+=new EventHandler(textBox_TextChanged);    
    } 

    void textBox_TextChanged(object sender, EventArgs e) 
    { 
     string text=(sender as TextBox).Text; 
     if(!textBox1.Text.Equals(text)) { textBox1.Text=text; } 
     if(!textBox2.Text.Equals(text)) { textBox2.Text=text; } 
    } 

} 
+0

고마워요. –

9

이 작업을 수행하는 가장 쉬운 방법은이 두 텍스트 상자를 유지할 한 TextBoxTextChanged 이벤트를 수신하고, 다른

public mainFrm() 
{ 
    InitializeComponent(); 

    txtFormat.TextChanged += OnTextChanged; 
} 

private void OnTextChanged(object sender, EventArgs e) 
{ 
    txtNewFormat.Text = txtFormat.Text; 
} 
+0

호기심에서 벗어나서이 솔루션은 문자 하나 하나를 문자로 업데이트하겠습니까? 아니면 첫 번째 텍스트 상자의 텍스트를 완전히 입력 한 후에야합니까? – jmstoker

+0

그러나 첫 번째 수정 작업이 완료 될 때마다 두 번째 텍스트 상자에 작성된 내용을 완전히 덮어 씁니다. 영업은 조심해야 해. –

+0

@jmstoker'txtFormat'의 텍스트가 바뀔 때마다 업데이트됩니다. 그래서 모든 문자를 누른 후 복사 작업이 변경 될 것입니다 – JaredPar

관련 문제