社区
C#
帖子详情
[求助]为什么继承了ToolBar的控件override的它的OnPaint方法却不能执行?
luckypan
2003-07-20 01:26:57
我写了自定义组件(components),继承自ToolBar,override它的OnPaint方法,但方法内的代码却不能执行。这是为什么,该怎么解决?谢谢
...全文
319
8
打赏
收藏
[求助]为什么继承了ToolBar的控件override的它的OnPaint方法却不能执行?
我写了自定义组件(components),继承自ToolBar,override它的OnPaint方法,但方法内的代码却不能执行。这是为什么,该怎么解决?谢谢
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
8 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
打赏红包
luckypan
2003-07-21
打赏
举报
回复
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/cpref/html/frlrfsystemwindowsformscontrolstylesclasstopic.htm
ToolBar默认并不支持OnPaint重写,不过通过设置SetStyle( ControlStyles.UserPaint,true);会产生不同的效果.上面的链接是解释ControlStyles的。
谢谢各位的回复!
AhBian
2003-07-20
打赏
举报
回复
我代楼主说了,真没必要贴代码。
想试的话,自己从 NumericUpDown 继承一下,看看 override OnPaint 有用否?
思归兄正在论坛上,怎么不来说说?
wheagle
2003-07-20
打赏
举报
回复
贴出代码来看看
visualcpu
2003-07-20
打赏
举报
回复
no try
help you up!
AhBian
2003-07-20
打赏
举报
回复
这样的控件多了去了。象 NumericUpDown,DomainUpDown,TreeView,ToolBar ... 都不行的。
我也正不太明白,我提过这样的问题,居然无人能回答。
后来我也没在此问题上深入下去。只能顶了。
AhBian
2003-07-20
打赏
举报
回复
TO chainet(学习创业):
TextBox 是可以如那帖解决,可里列出的几个控件,你试试看,能行吗?
TO seakingii(seaking2) :
如果 NumericUpDown 真是从通用控件封装而来,那么在 ComCtrl 版本 6 及以上的环境中运行,NumericUpDown 就肯定会有 XP 风格的外观。事实上,没有任何变化。
然而,Button 是从通用控件封装而来的,怎么就可以 override OnPaint 呢?
只要把 Button 的 FlatStyle 设置成 System ,就可随运行环境的不同正确显示外观。
真的不明白。我一直想改造 NumericUpDown 控件,可是怎么也办不到。
seakingii
2003-07-20
打赏
举报
回复
这些控件实质是 Win32通用控件的封装,并非完全的Managed控件。它不是按照标准的控件实现方法来实现的。换句话说,并不是用。NET代码画的,而是调用通用控件Dll的代码。通用控件跟IE版本有关。
chainet
2003-07-20
打赏
举报
回复
http://expert.csdn.net/Expert/topic/2009/2009381.xml?temp=.2815515
相关推荐
C#中
paint
()与On
paint
()的区别
代码如下:protected virtual On
Paint
(
Paint
EventArgs e){ if(
paint
!= null){
paint
(this,e);}}如果直接重写on
paint
,
paint
就会失效;这样就不会失效: 代码如下:protected
overr
ide
On
Paint
(
Paint
EventArgs e){ base.On
Paint
(e); //自己的代码} (一)重绘时候经常会用到On
Paint
()和
Paint
,它们有什么区别呢? 1.On
Paint
方法
是对一个
控件
来说的;而
Paint
事件是对一个
控件
对象来说的。它们中前者相当于是类的一个成员函数,而后者相当于
自定义xp风格工具栏
控件
运行效果图如下图所示:代码实现如下: 需要注意的地方是从
ToolBar
继承
的自定义
控件
不能
直接
overr
ide
它的On
Paint
函数,必须在它的construct函数设置它的外观由用户绘制,定义代码如下: this.SetStyle(ControlStyles.User
Paint
,true); /// <summary> /// 实现XP风格的工具栏按钮...
winform自绘
控件
规则
1.自绘
控件
,一般从Control派生),需重载On
Paint
()
方法
。一般按四步骤: protected
overr
ide
void On
Paint
(
Paint
EventArgs e) { //a.使用缓存 Bitmap bitmap = new Bitmap(this.Width, this.Height); Graphics gb = Graphics.FromImage(bitmap); //b.用背景色清理
控件
gb.Clear(this.Back
c# 如何重写
控件
的On
Paint
事件
使用On
Paint
事件可以随时绘制图形 调用窗体的On
Paint
事件protected
overr
ide
void On
Paint
(
Paint
EventArgs e){ base.On
Paint
(e); //绘图} 但是如何重写
控件
的On
Paint
事件呢?比如说绘图是在PictureBox中绘制的,那么如何重写PictureBox的On
Paint
事件?
C# winform 创建自定义
控件
,
1、新建自定义
控件
,如下图: 2、新建完,重写protected
overr
ide
void On
Paint
(
Paint
EventArgs pe)事件 protected
overr
ide
void On
Paint
(
Paint
EventArgs pe) { base.On
Paint
(pe); Graphics g = this.CreateGraphics(); g.SmoothingMode = Smo.
发帖
C#
C#
.NET技术 C#
复制链接
扫一扫
10.8w+
社区成员
64.2w+
社区内容
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2003-07-20 01:26
社区公告
让您成为最强悍的C#开发者