如何在运行时绘制创建DoubleBufferedPanel

时间:2012-09-04 17:55:14

标签: c# .net winforms graphics

我为绘制矢量图元编写了一个C#应用程序。对于绘图表面,我使用放置在TabControl中的Draw.DoubleBufferedPanel。当我创建新项目时,会创建一个带有新Draw.DoubleBufferedPanel的新标签页。但是在用于drowing按钮的单击事件中,我使用主要的Draw.DoubleBufferedPanel,当我创建新选项卡时,我无法在其中绘制任何内容。在新创建的项目中我需要做些什么?

1 个答案:

答案 0 :(得分:0)

确保您的控件层次结构正确无误:

  • 的MainForm
    • 的TabControl
    • TabPage1
      • MyDrawingControl1:MyDrawControl
    • TabPage2
      • MyDrawingControl2:MyDrawControl

然后在MyDrawControl的绘制处理程序(而不是它的实例)中,你需要通过完整地剪切剪裁来绘制到它自己的表面(图形)。

<强>更新

可以找到有关如何实现执行某些自定义绘图的控件的信息here。通常,您必须编写自己的类并从控件(或其后代之一,如Button)继承并实现OnPaint()方法。在OnPaint()中,您可以使用Graphic绘画。控件可以设置为DoubleBuffered = true,因此Winforms会自动在OnPaint()代码周围应用双缓冲。