2009-12-01 1 views
0

위의 이벤트 처리기가 내 양식에 있고 진행 상황을 보여주기 위해 클래스의 코드에서 다른 지점에서 발생하는 메시지를 표시하기 위해 양식의 텍스트 상자를 업데이트하려고합니다.코드가 끝나면 이벤트가 발생하지 않으므로 텍스트 상자 업데이트를 어떻게 만듭니 까?

모든 메시지는 텍스트 상자에 나타나지만 클래스 코드가 끝날 때까지는 나타나지 않습니다.

내가 뭘 잘못하고 있니?

답변

2

UI가 변경 사항으로 업데이트되도록 텍스트 상자를 새로 고쳐야합니다.

+0

내가 게시 한 후 그것을 순간. 고맙습니다! – Dave

3

작업을 별도의 스레드에두고 작업이 진행될 때 UI 스레드를 호출해야합니다. 개별 스레드를 얻는 방법은 this 게시물을 참조하십시오.

+1

DUDE! Application.EventEvent()를 단지 blithely하게 추천하지 마라. 당신이 심각하게 그것을 사용함으로써 일을 망칠 수있는 많은 많은 복잡한 그리고 완전히 무시 무시한 방법들이있다. 경고. 경고! 첫 제안은 이기기에 충분합니다. +1 – Quibblesome

+0

나는 @Quibblesome으로 동의 함 –

+1

추가 경고;) –

0

당신의 TextChanged 이벤트 처리기입니다 사용할 수있는 이벤트, 텍스트 상자가 비어있을 때 여기 예,의,이 채워져 진홍색의 배경 변경, 기본 색상의 배경 변경 :

 
private void textBox1_TextChanged(object sender, EventArgs e){ 
    if (this.textBox1.TextLength == 0) 
    { 
     this.textBox1.BackColor = System.Drawing.Color.Crimson; 
    } 
    else 
    { 
     this.textBox1.BackColor = System.Drawing.SystemColors.Window; 
    } 
} 

아이디어를 얻었을 때마다 매번 업데이트되는 TextLength 속성을 사용하여 입력 한 문자 수를 나타내는 레이블을 표시하도록 설정할 수도 있습니다.

호프가 도움이 되었으면 안녕하세요, 탐.

관련 문제