627
技術社區[雲棲]
winform程序textbox滾動條保持在最下麵 內容不閃爍
在開發winform程序時,會用到textbox控件來顯示信息,當把textbox的Multiline屬性改為Ture時(即多行顯示狀態),ScrollBars屬性改為Vertical(內容過多時,顯示豎狀滾動條),顯示內容過多時就會出現豎狀滾動條。
默認情況下,當textbox內容改變時,winform會自動把textbox的滾動條定位到textbox的最上麵。但這顯然不是我們想要的結果,比如我們在開發一個聊天程序時,當發送了一條消息後,卻還要把滾動條拖到最下麵才能看到,這就讓人火大了。
所以得想個辦法讓textbox的內容更新時,滾動條保持下最下麵,讓最新追加到textbox中的消息顯示出來。一般用到的方法是在textbox的TextChanged事件中寫如下代碼:
private void txt_content_TextChanged(object sender, EventArgs e)
{
this.txt_content.SelectionStart = this.txt_content.Text.Length;
this.txt_content.SelectionLength = 0;
this.txt_content.ScrollToCaret();
}
問題解決了,一切看似很好,後來你卻發現,問題是解決了,但每次textbox追加內容時,都會“閃”那麼一下。這個時候,如果你寫的程序要頻繁的更新textbox的內容,如顯示一個程序的安裝過程,災難降臨了。你就看吧,那個框框會“閃”的你眼暈!
把上麵那部分代碼從你的程序中刪掉吧!在更新textbox內容的地方用下的代碼試試:
txt_content.AppendText(str);
最後更新:2017-04-03 12:55:47