相关文章推荐
沉稳的咖啡豆  ·  模式识别·  1 年前    · 
飞翔的皮带  ·  R语言ggplot2 图例缩小 ...·  2 年前    · 
酒量小的椰子  ·  深入理解Power ...·  2 年前    · 
在开发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内容的地方用下的代码试试:

三种解决方法: 1.在构造方法中设置 ControlStyles 的OptimizedDoubleBuffer 和AllPaintingInWmPaint为True,完全启用双缓冲。 2.设置CreateParams的ExStyle为ExStyle 为 0x02000000 (WS_EX_COMPOSITED) 3.这种方法不会加快绘制的过程。当发生绘制时,窗体只是停留在不可见的状态,当绘制完成后就会在屏幕上弹出
原文:关于wpf中popup跟随鼠标移动显示 最近在做一个画图工具,里面有一个功能是需要实现,当鼠标移动的时候在,鼠标的旁边显示坐标信息。 第一反应是想到了tooltip,但是tooltip有许多的限制,查询资料的过程中看到了popup,popup比tooltip更加灵活,下面讲讲tooltip跟popup的区别: 1.tooltip会自动显示,自动隐藏,而popup则需要设置IsOpen属性,并且在Popup.StaysOen属性为true时,Popup控件会一直显示,直到显式地将IsOpen属性设置为False。
WPF自定义控件与样式(13)-自定义窗体Window & 自适应内容大小消息框MessageBox
原文:WPF自定义控件与样式(13)-自定义窗体Window & 自适应内容大小消息框MessageBox   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。