[英]How do I make a textbox update as an event happens not when the code has finished?
private void Discogs_NewStatusMessage(object sender, NewStatusMessageEventArgs e)
{
textBox1.Text += e.Message() + "\r\n";
}
我在窗體上具有上面的事件處理程序,並且正在嘗試更新窗體上的文本框,以顯示發生在類中代碼不同位置的消息,以顯示進度。
所有消息都出現在文本框中,但是直到類代碼完成后才出現。
我究竟做錯了什么?
您應該將操作放在單獨的線程上,然后在取得進展時調用UI線程。 有關如何實現單獨線程的信息,請參見這篇文章。
您需要嘗試刷新文本框,以便UI隨更改而更新。
可以使用的事件是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屬性輸入的字符數,每次更新。
希望這對您有所幫助,湯姆,謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.