C# 覆盖在油漆上

C# 覆盖在油漆上,c#,winforms,designer,windows-forms-designer,C#,Winforms,Designer,Windows Forms Designer,如果我覆盖OnPaint并在控件上绘制一个正方形,我如何获得e.graphics.draw。。。当我在设计器中预览时显示它? 而您可以手动向 Control.OnPaint以添加您的设计 时间用户界面,你会发现覆盖 onpaintarendments是一个更好的选择 因为它只在 控件的设计时/运行时UI为 上漆,让你涂上糖霜 蛋糕(见图20)。简单地 将DesignerAttribute添加到 ClockControl类完成 关联:复制代码 [ 设计器(类型(ClockControlDesig

如果我覆盖OnPaint并在控件上绘制一个正方形,我如何获得e.graphics.draw。。。当我在设计器中预览时显示它?

而您可以手动向 Control.OnPaint以添加您的设计 时间用户界面,你会发现覆盖 onpaintarendments是一个更好的选择 因为它只在 控件的设计时/运行时UI为 上漆,让你涂上糖霜 蛋糕(见图20)。简单地 将DesignerAttribute添加到 ClockControl类完成 关联:复制代码

[ 设计器(类型(ClockControlDesigner)) ]类ClockControl:控件{…}


如果您试图为控件绘制一个焦点矩形,并且在控件添加到窗体后在操作控件时使其可见,那么应该可以工作

如果要查看自定义绘制控件的外观

  • 如果已重写控件中的
    OnPaint
    方法,则在将控件添加到窗体(或其他控件)后查看该控件时,应该会看到该
    OnPaint
    方法的结果

  • 如果您在查看控件本身的设计器时试图查看
    绘制的结果(至少VS2005没有):

    不幸的是,这是不可能的。 当你写这些行为的时候 用户控件的代码不是 编译和设计者实际上 使用普通用户控件作为宿主 子控件。
    OnPaint
    覆盖etc将不会运行

    调试控件中的重写 你需要以某种方式运行它 主办VS2005提供了一个新的控件 但我发现 即使这样有时也不够


您是在询问如何在自定义绘制的控件上绘制焦点矩形,还是在查看控件的设计器时如何查看覆盖的OnPaint的结果?最好包含段落描述,因为这些链接已失效。