-1

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

4

1 回答 1

0

确保您的控制层次结构正确:

  • 主窗体
    • 选项卡控件
    • 标签页1
      • 我的绘图控制1:我的绘图控制
    • 标签页2
      • 我的绘图控制2:我的绘图控制

然后在 MyDrawControl 的绘制处理程序(不是它的实例)中,您需要通过完整地保留剪裁来仅在其自己的表面(图形)上进行绘制。

更新:

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

于 2012-09-05T11:24:12.630 回答