閱讀627 返回首頁    go 技術社區[雲棲]


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

  

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

最後更新:2017-04-03 12:55:47

  上一篇:go SVN commit:remains in tree-conflict錯誤的解決辦法
  下一篇:go pl/sql developer執行光標所在行