CSkin博客

标题: SkinTabControl报错:矩形 的宽度或高度不能等于零 [打印本页]

作者: mckay    时间: 2016-7-14 14:27
标题: SkinTabControl报错:矩形 的宽度或高度不能等于零
请教使用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
www.cskin.ent
是最新版的cskin吗。
作者: mckay    时间: 2016-8-1 09:21
本帖最后由 mckay 于 2016-9-8 18:11 编辑

是最新版的  ver16.1.14.2

不知道和SkinTabControl的DrawType属性有没有关系,每次报错的时候,我改下这个属性的值再build,就暂时性的消除了问题
作者: mckay    时间: 2016-8-5 10:41
报错的时候  tabcontrol里的tabpage就变成图片这样了

cskin1.JPG (78.15 KB, 下载次数: 43)


作者: mckay    时间: 2016-9-8 18:10
本帖最后由 mckay 于 2016-9-8 18:12 编辑

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

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


tcbug.PNG (8.5 KB, 下载次数: 30)

FormTest.rar

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


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




欢迎光临 CSkin博客 (http://bbs.cskin.net/) Powered by Discuz! X3.2