解决方案 »
- WINFORM中将TEXTBOX中的分号自动转换为回车换行,该怎么做?
- updatepanel jq 验证
- 关于C#的几本入门书,过来人进来说说
- vs实现计时功能
- 如何让 WinForm 的 ContainerControl 具有像 Form 的 Deactivate 事件一样的功能?
- 在线——ComboBox的几个小问题
- VS2005出了吗?
- 哪位大虾能推荐一本学习C#的书~~~~不要太简单的~~~~~正准备转C#~~~~~多谢~~~~~~
- 一个关于session的问题
- 请教:关于UDPClient的的几个问题
- 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);
}
}
}
}
}
}
”