none
窗体继承 RRS feed

  • 问题

  • 创建窗体FrmParent,设置FormBorderStyle=None;并用overvide OnPaint()方法在窗体四周绘制了边框;方法中已调用base.OnPaint(e);

    Frm1窗体继承至FrmParent窗体,添加ToolStrip控件时出错。

    控件System.Windows.Forms.ToolStrip在设计器中引发了一个未处理的异常,已被禁用。
    异常:
    参数无效。
    堆栈跟踪:
    在System.Windows.Forms.ToolStrip.EraseCorners(PaintEventArgs e,Region transparentRegion)
    在System.Windows.Forms.ToolStrip.OnPaintBackground(PaintEventArgs e)
    在System.Windows.Forms.ToolStrip.WndProc(Message& m)

    2010年6月10日 8:01

答案

  • 应该是窗体的 Paint 事件在响应继承类的代码时发生了异常。一个可能的原因是 ToolStrip 会用到窗体四周的几个区域,而这几个区域恰好被您重绘了。第二个可能的原因是您可能不经意更改了某些绘图的参数,如样式,窗体外观等。


    Mark Zhou
    • 已标记为答案 潇洒草 2010年6月13日 0:53
    2010年6月10日 9:41

全部回复

  • 你好

    从错误中我得到的推测是在ToolStrip Paint的时候会影响到窗体的Paint导致出错,检查一下你重写的窗体是否篡改了原来的某些东西。

    2010年6月10日 9:20
  • 应该是窗体的 Paint 事件在响应继承类的代码时发生了异常。一个可能的原因是 ToolStrip 会用到窗体四周的几个区域,而这几个区域恰好被您重绘了。第二个可能的原因是您可能不经意更改了某些绘图的参数,如样式,窗体外观等。


    Mark Zhou
    • 已标记为答案 潇洒草 2010年6月13日 0:53
    2010年6月10日 9:41
  • 你好!

         你尝试F5直接运行项目,看看能否成功!有时只是设计器无法顺利绘制!


    周雪峰
    2010年6月10日 11:08
    版主