我想自己编写一个控件,从System.Windows.Form.TextBox继承,为什么重写的OnPaintBackground代码从来就没有被执行过呢? 参数PaintEventArgs对象确认正确吗? 如果正确就应该没有问题了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不是啊我就是在Microsoft Visual Studio .NET 2003的开发环境里新建了一个控件,从System.Windows.Form.TextBox继承,然后写override的时候IDE自动给我生成了override的声明代码,肯定不会错的吧 protected override void OnPaintBackground(PaintEventArgs e){ base.OnPaintBackground(e);} 关键是OnPaintBackground不是主动的,必须由InvokePaintBackground来激活。private void button1_Click(object sender, System.EventArgs e){ PaintEventArgs pe = new PaintEventArgs(null,new Rectangle(0,0,100,100)); this.InvokePaintBackground(this.MyTextBox,pe);}我写了一个测试程序,这样就可以激活MyTextBox的OnPaintBackground事件。 从本质来说,所有事件都是被动的,因而他们都需要被激活。但是象Paint事件,在某些时候不需要你写调用代码。比如拖动窗口发生了Paint事件,会自动调用OnPaint()。你当然也可以主动的调用OnPaint()函数,或者用Invoke()来激活它。事件机制是对消息机制的封装,理解了这一点,就能明白了。 是阿我在private void InitializeComponent()里面,加入了this.SetStyle(System.Windows.Forms.ControlStyles.UserPaint,true);以后就可以了但是自己写的绘图代码无论如何都不能正常运行,哎 MSDN上写OnPaint()是引发Paint 事件,难道产生重绘事件时需要先调用OnPaint()函数,再有OnPaint函数引发Paint事件,再有Paint事件调用某个事件处理函数。 C#操作视频,视频没有打开!!!!!! 请教:c#如何捕获主菜单弹回? 上传文件,显示进度条,在线等 关于XML 被另一进程访问 请问.net 2003 和 .net 2005 语言上有区别嘛??? 高手求解,线程问题 我们的发展方向!!! 用EF获取mysql数据时报:Unable to convert MySQL date/time value to System.DateTime 服务占用内存为何越来越高? 关于timer简单问题 以前的8位的CHAR在C#里怎么表示?(40分!) web程序中,datagrid控件DataKeyField属性能否指定多个字段?
{
base.OnPaintBackground(e);
}
{
PaintEventArgs pe = new PaintEventArgs(null,new Rectangle(0,0,100,100));
this.InvokePaintBackground(this.MyTextBox,pe);
}我写了一个测试程序,这样就可以激活MyTextBox的OnPaintBackground事件。
但是象Paint事件,在某些时候不需要你写调用代码。
比如拖动窗口发生了Paint事件,会自动调用OnPaint()。
你当然也可以主动的调用OnPaint()函数,或者用Invoke()来激活它。事件机制是对消息机制的封装,理解了这一点,就能明白了。
this.SetStyle(System.Windows.Forms.ControlStyles.UserPaint,true);
以后就可以了但是自己写的绘图代码无论如何都不能正常运行,哎