zoukankan      html  css  js  c++  java
  • [转]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);
    转自:http://www.cnblogs.com/bynet/archive/2010/06/01/1749208.html
    作者:a497785609 发表于2014-3-22 17:41:47 原文链接
    阅读:49 评论:0 查看评论
  • 相关阅读:
    一个C++程序员学习C#语言
    C#入门教程笔记
    完全卸载mysql 停止服务、卸载相关程序、删除注册表
    C++结构简介
    babun,windows shell
    无限极设计以及随意移动节点(树结构)
    springboot 配置访问外部静态资源详解
    mysql8+keepalived 双主高可用搭建
    mysql 双主复制搭建
    mysql 主备搭建
  • 原文地址:https://www.cnblogs.com/zhangqs008/p/3763844.html
Copyright © 2011-2022 走看看