1. 程式人生 > >winform程式textbox滾動條保持在最下面 內容不閃爍

winform程式textbox滾動條保持在最下面 內容不閃爍

  在開發winform程式時,會用到textbox控制元件來顯示資訊,當把textbox的Multiline屬性改為Ture時(即多行顯示狀態),ScrollBars屬性改為Vertical(內容過多時,顯示豎狀滾動條),顯示內容過多時就會出現豎狀滾動條。

  預設情況下,當textbox內容改變時,winform會自動把textbox的滾動條定位到textbox的最上面。但這顯然不是我們想要的結果,比如我們在開發一個聊天程式時,當傳送了一條訊息後,卻還要把滾動條拖到最下面才能看到,這就讓人火大了。

  所以得想個辦法讓textbox的內容更新時,滾動條保持下最下面,讓最新追加到textbox中的訊息顯示出來。一般用到的方法是在textbox的TextChanged事件中寫如下程式碼:

 privatevoid 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內容的地方用下的程式碼試試:

//向textbox追加內容txt_content.AppendText(str); 轉自:http://www.cnblogs.com/bynet/archive/2010/06/01/1749208.html