배경 : : StatusStrip이 TooStripStatusLabel로 사용되도록 설정된 WindowForms v3.5 응용 프로그램이 있습니다. 나는 그것이 실행중인 작업 동안 그것에 많은 업데이트를 발행하지만, 그것이 공백 인 주목할만한 기간이있다. 상태 표시 줄 레이블에 공백을 쓸 때도 아무런 의미가 없습니다.Winforms StatusStrip - 업데이트 할 때 비어있는 기간이있는 이유는 무엇입니까?
QUESTION : 상태 표시 줄 레이블이 비어있는 기간을 예상하는 이유는 무엇입니까?
나는 그것을 업데이트 방법 :
private void UpdateStatusStrip(string text)
{
toolStripStatusLabel1.Text = text;
toolStripStatusLabel1.Invalidate();
this.Update();
}
PS합니다. this.Update() 후에 Application.DoEvents()를 호출하면 도움이되지 않는 것 같습니다. 사실은 그래서, BackgroundWorker 구성 제어를 통해이 호출 오전 :
(A) 나는 백그라운드 작업자를 시작 :
private void Sync_Button_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
DisableUpdateButtons();
}
(b)는 백그라운드 작업자가 업데이트 호출
private void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
backgroundWorker1.ReportProgress(1, "Example string");
MainForm.MyC.SyncFiles(sender);
}
을 (c) MyC 비즈니스 클래스도이를 사용합니다.
public void SyncFiles(object sender)
{
BackgroundWorker bgw = (System.ComponentModel.BackgroundWorker) sender;
bgw.ReportProgress(1, "Starting sync...");
.
.
.
}
(d)는이 이벤트는 그것을 집어 들고 : 다시
private void backgroundWorker1_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
{
UpdateStatusStrip((string)e.UserState);
}
(예) 그리고 업데이트 상태 스트립
private void UpdateStatusStrip(string text)
{
toolStripStatusLabel1.Text = text;
toolStripStatusLabel1.Invalidate();
this.Update();
}
이 도움을합니까를?
나는 비슷한 것을 가지고있다. 텍스트가 라벨에 비해 너무 길 때 라벨이 비어있는 것처럼 보입니다. 아직 해결 방법이 확실하지 않습니다. –