【轉】winform程序textbox滾動條保持在最下面 內容不閃爍

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

  默認狀況下,當textbox內容改變時,winform會自動把textbox的滾動條定位到textbox的最上面。但這顯然不是咱們想要的結果,好比咱們在開發一個聊天程序時,當發送了一條消息後,卻還要把滾動條拖到最下面才能看到,這就讓人火大了。this

  因此得想個辦法讓textbox的內容更新時,滾動條保持下最下面,讓最新追加到textbox中的消息顯示出來。通常用到的方法是在textbox的TextChanged事件中寫以下代碼:spa

  

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();
}
View Code

 

  問題解決了,一切看似很好,後來你卻發現,問題是解決了,但每次textbox追加內容時,都會「閃」那麼一下。這個時候,若是你寫的程序要頻繁的更新textbox的內容,如顯示一個程序的安裝過程,災難降臨了。你就看吧,那個框框會「閃」的你眼暈!code

  把上面那部分代碼從你的程序中刪掉吧!在更新textbox內容的地方用下的代碼試試:orm

  

// 向textbox追加內容 txt_content.AppendText(str);

 

  運行你的程序吧!blog

相關文章
相關標籤/搜索