作者: mckay
查看: 1449|回复: 8

SkinTabControl报错:矩形 的宽度或高度不能等于零

[复制链接]
mckay 发表于 2016-7-14 14:27:26 | 显示全部楼层 |阅读模式
查看: 1449|回复: 8
请教使用SkinTabControl报如下错误是怎么回事?
不是常态的,偶尔会出现。
有时候应用运行很长时间都没事,有时候突然就冒出来,tabcontrol里的某个tabpage就崩溃了。
同一个tabcontrol里,可能1、2两个tabpage崩溃,后面的就没事。

未处理System.ArgumentException
  HResult=-2147024809
  Message=矩形“{X=0,Y=0,Width=48,Height=0}”的宽度或高度不能等于零。
  Source=System.Drawing
  StackTrace:
       在 System.Drawing.Drawing2D.LinearGradientBrush..ctor(Rectangle rect, Color color1, Color color2, LinearGradientMode linearGradientMode)
       在 CCWin.SkinControl.SkinTabControl.etu1GRNSuE(Graphics  , Rectangle  , Color  , Color  , Single  , LinearGradientMode  )
       在 CCWin.SkinControl.SkinTabControl.ajX1gHnTPy(PaintEventArgs  )
       在 CCWin.SkinControl.SkinTabControl.Aty2zNSIYY(PaintEventArgs  )
       在 CCWin.SkinControl.SkinTabControl.OnPaint(PaintEventArgs e)
       在 System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
       在 System.Windows.Forms.Control.WmPaint(Message& m)
       在 System.Windows.Forms.Control.WndProc(Message& m)
       在 System.Windows.Forms.TabControl.WndProc(Message& m)
       在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
  InnerException:


回复 论坛版权

使用道具 举报

乔克斯 发表于 2016-7-25 17:27:01 | 显示全部楼层
www.cskin.ent
是最新版的cskin吗。
 楼主| mckay 发表于 2016-8-1 09:21:26 | 显示全部楼层
本帖最后由 mckay 于 2016-9-8 18:11 编辑

是最新版的  ver16.1.14.2

不知道和SkinTabControl的DrawType属性有没有关系,每次报错的时候,我改下这个属性的值再build,就暂时性的消除了问题
 楼主| mckay 发表于 2016-8-5 10:41:46 | 显示全部楼层
报错的时候  tabcontrol里的tabpage就变成图片这样了

 楼主| mckay 发表于 2016-9-8 18:10:28 | 显示全部楼层
本帖最后由 mckay 于 2016-9-8 18:12 编辑

已经找到100%重现这个问题的方式了...
创建1个tabcontrol ->   创建4个tabpage1-2-3-4
然后在每个tabpage里面各放一个tabcontrol及2个tabpage,并把tabcontrol的属性DrawType设置为 Draw

运行后, 点 tabpage1-2-3就报错了
附件是测试代码


FormTest.rar

1.58 MB, 下载次数: 6, 下载积分: 金钱 -1

stepluna 发表于 2016-9-9 13:01:34 | 显示全部楼层
我也遇到了,DrawType设置为 Draw就会报错,求解决方法。
a304124348 发表于 2016-10-27 14:46:23 | 显示全部楼层
这个问题怎么解决啊,我也遇到了
harwinxia 发表于 2018-8-3 08:08:08 | 显示全部楼层
有解决办法吗?
IT刀客 发表于 2018-10-25 23:51:15 | 显示全部楼层
SkinTabControl控件在将标签模式DrawType设置为 Draw时会报此错误。属于此控件的一个bug,原因是控件在绘制/重绘时未能正确读取设置的Width和Height的值导致。另外,绘制Tab时的X,Y坐标起始点也无法正确设置,所以最后就会形成一个高宽为0的虚点,实际上就是无法绘制。
您需要登录后才可以回帖 登录 | 加入CSkin论坛

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2018-12-17 16:28, Processed in 0.809049 second(s), 34 queries , Gzip On.

快速回复 返回顶部 返回列表