解决方案 »
- 如何将Combobox和treeview
- dev TreeList绑定多张表
- C#中Debug.Write()输出到哪里了?
- Nhibernate模式中如何实现数据表的自身连接?
- 关于用MenuItem的名字取得对该对象引用的问题
- 小弟有大问题,困扰N久,濒于崩溃,救命啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~有顶有分啊!!
- 求一正则表达式:4-20个字符,包括大小写字母,下划线,中文
- sql server打了sp4之后程序出错!!
- Visual C#程序设计严月浩版课后练习答案
- 项目开发,寻.net高手!
- C# richTextBox的Key_UP,Key_Down,Key_left,Key_right事件
- C#跟数据连接异常~~谢谢!!
“楼主的想法在思路上是没有问题的,问题的出现是因为TextBox的本身.因为它在处理显示的时候除Paint外还有两个消息TextBox也在画,而这两个消息默认是没有事件处理的,也就是说这是TextBox内部的问题,要解决这个问题就好说了,来提前处理这些消息就行了,怎么做呢?
这个好说,按如下的代码写就行了:
public class MyTextBox : TextBox
{
public MyTextBox()
{
this.BorderStyle = BorderStyle.FixedSingle;
}
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == 0xf || m.Msg == 0x14 || m.Msg == 0x85)
{
if (this.BorderStyle == BorderStyle.FixedSingle)
{
using (Graphics g = Graphics.FromHwnd(this.Handle))
{
using (Pen pen = new Pen(Color.Red))
{
g.DrawRectangle(pen, 0, 0, this.Width - 1, this.Height - 1);
}
}
}
}
}
}
”