【问题标题】:GDI update graphics issueGDI 更新图形问题
【发布时间】:2012-12-07 22:26:56
【问题描述】:

我试图在谷歌上搜索这个,但似乎没有找到任何可以帮助我的相关内容。 我的问题是,我有一个 面板,在其中我绘制了一个 立方体,我添加了一个带有 3 个单选按钮和 4 个普通按钮的组框(这些按钮可以旋转立方体) 为了进行测试,我在 面板 上添加了另一个按钮,但没有在组框中。 问题是这样的,当我按下任何按钮时,它不会更新立方体的旋转,只有当我将鼠标移动到测试按钮上时(在它上面) 如果我尝试将按钮移到组框外,那么一切正常,但如果它们留在组框内,它们就不起作用。

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

【问题讨论】:

  • 我已经找到了解决这个问题的方法,我使用了 Invalidate();当我按下组框中的按钮时。我通过添加 drawPanel.Invalidate(); 来修复它这解决了我的问题,但添加了一个新问题,现在每次按下按钮时绘图都会闪烁(但如果我将按钮移出组框,则它们不会闪烁)。

标签: c# gdi


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 2019-08-24
      • 2013-09-09
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      相关资源
      最近更新 更多