2014-12-01 71 views
0

我创建了一个简单的程序,现在我正处于设计阶段。我有多个面板,我可以在“标签”(EG.1面板的登录屏幕和1面板的创建帐户屏幕)之间切换可见/不可见。现在我已经使这些面板不可见,因为我希望它们只是容器,能够快速移动控件并创建按钮。闪烁透明面板

我的问题是,我将窗体背景图像设置为我制作的图像Photoshop和每当我在面板之间切换闪烁,每当我只使用系统颜色(白色,黑色),这不会发生。 有什么办法可以消除闪烁现象吗?

我已经试过:

  • 设置双缓冲真
  • 保护overrideing的OnPaint,CreateBackground和Createparam

我的代码是非常基本的:

private void btnNewAcc_Click(object sender, EventArgs e) 
    { 
     PanelNewAccount.Visible = true; 
     PanelLogin.Visible = false; 
    } 
+0

没有看到您的代码我只能建议尝试一个双缓冲面板子类 – TaW 2014-12-01 20:54:20

回答

0

感谢帕特里克我已经解决了我的问题, 而是采用面板我的在使用TabControl时,我为每个选项卡分配了相同的背景。 同样容易添加动态按钮。 与面板相同的功能,但没有闪烁。

0

尝试将窗体属性DoubleBuffered设置为true,以winforms形式闪烁通常LY情况是因为GDI +是试图绘制控件(一个或多个)很多次这样DoubleBuffering您的图形应该在这样的情况下帮助

form.DoubleBuffered = true; 
+0

对不起,我只是编辑我的文章,我已经试过,但没有任何影响我害怕 – BornToGrill 2014-12-01 20:54:35

+0

@BornToGrill有你尝试使用TabControl ?,我在测试应用程序中使用了相同的方法,并没有闪烁 – Patrick 2014-12-01 21:02:06

+0

我不明白我怎么能用它作为一个替代,我没有真正使用TabControls,但我找不到如何使它透明,我也不知道它是否允许我动态地添加按钮,如我需要 – BornToGrill 2014-12-01 21:05:56