我试图在谷歌上搜索这个,但似乎没有找到任何相关的东西可以帮助我。 我的问题是这样的,我有一个面板其中i的绘制立方体,且i加一组框中用3个单选按钮和4个正常按钮(这些做立方体的旋转) 为了测试我在面板上添加了另一个按钮,但不在组框中。 问题是这样的,当我按任何按钮,它不会更新多维数据集的旋转,只有当我将鼠标移动到测试按钮上(在它上面) 如果我尝试移动组框外的按钮,那么所有的作品好吧,但如果他们留在组合框内,他们就不会工作。GDI更新图形问题
有谁知道我该如何解决这个问题?
我试图在谷歌上搜索这个,但似乎没有找到任何相关的东西可以帮助我。 我的问题是这样的,我有一个面板其中i的绘制立方体,且i加一组框中用3个单选按钮和4个正常按钮(这些做立方体的旋转) 为了测试我在面板上添加了另一个按钮,但不在组框中。 问题是这样的,当我按任何按钮,它不会更新多维数据集的旋转,只有当我将鼠标移动到测试按钮上(在它上面) 如果我尝试移动组框外的按钮,那么所有的作品好吧,但如果他们留在组合框内,他们就不会工作。GDI更新图形问题
有谁知道我该如何解决这个问题?
我可以建议您不要重新绘制面板,而是创建一个用于绘制(旋转)立方体的Bitmap
并使用PictureBox
来显示它? PictureBox
可能位于Panel
以及GroupBox
之内。
闪烁是因为面板先重绘其背景,然后引发Paint
事件。为了避免这种情况,您必须创建一个自定义控件,并在OnPaintBackground
受保护的方法中执行绘图。这似乎是一种矫枉过正。或者,您可以写入位图并将其放入BackgroundImage
属性中。
我发现如何解决这个问题,我使用Invalidate();当我按下组框中的按钮。 我通过添加drawPanel.Invalidate()来修复它;这解决了我的问题,但添加了一个新的,现在每次按下按钮时图形都会闪烁(但如果我将按钮从组框中移开,则不会闪烁)。 – MrCronus