2012-12-20 52 views
-1

我试图在谷歌上搜索这个,但似乎没有找到任何相关的东西可以帮助我。 我的问题是这样的,我有一个面板其中i的绘制立方体,且i加一组框中用3个单选按钮和4个正常按钮(这些做立方体的旋转) 为了测试我在面板上添加了另一个按钮,但不在组框中。 问题是这样的,当我按任何按钮,它不会更新多维数据集的旋转,只有当我将鼠标移动到测试按钮上(在它上面) 如果我尝试移动组框外的按钮,那么所有的作品好吧,但如果他们留在组合框内,他们就不会工作。GDI更新图形问题

有谁知道我该如何解决这个问题?

+0

我发现如何解决这个问题,我使用Invalidate();当我按下组框中的按钮。 我通过添加drawPanel.Invalidate()来修复它;这解决了我的问题,但添加了一个新的,现在每次按下按钮时图形都会闪烁(但如果我将按钮从组框中移开,则不会闪烁)。 – MrCronus

回答

0

我可以建议您不要重新绘制面板,而是创建一个用于绘制(旋转)立方体的Bitmap并使用PictureBox来显示它? PictureBox可能位于Panel以及GroupBox之内。

0

闪烁是因为面板先重绘其背景,然后引发Paint事件。为了避免这种情况,您必须创建一个自定义控件,并在OnPaintBackground受保护的方法中执行绘图。这似乎是一种矫枉过正。或者,您可以写入位图并将其放入BackgroundImage属性中。