2016-10-01 83 views
-1

我有很多groupbox和datagridview在Form 2但当我继续到Form2它会创建闪烁的屏幕,这就是为什么它是我的问题如何隐藏/禁用其他groupbox,只有一个会显示在表单加载。 顺便说这是我的代码:如何避免负载上的闪烁形式

在form2_load:

grpbox1.Show() 
    grpbox2.Hide() 
    grpbox3.Hide() 
    grpbox4.Hide() 
    grpbox5.Hide() 
    grpbox6.Hide() 

顺便问一下如何防止这种情况的任何想法?顺便说它写在Vb.net

+0

你可以尝试在设计师的知名度设置为False,或在窗体加载之前的构造。或者为每个GroupBox创建一个单独的表单,并在正确的时间打开正确的表单,因此您没有一个庞大的表单,并且有大量的控件。 –

+0

尝试'BeginUpdate'和'EndUpdate' ... – Codexer

+0

没有什么意义,当Load事件触发时窗口仍然不可见。发生这种情况之后,Shown事件被解雇,告诉你它发生了。也许你正在做其他的事情,但是一定要使用Load代码这样的代码通常是不好的做法,这段代码属于构造函数。或者只是在设计器中显而易见的,使用属性窗口来设置Visible属性。 –

回答

0

您可以将代码移动到将窗体加载事件之前运行的形式构造:

Public Class Form2 

    Sub New() 
     InitializeComponent() 

     For Each c In Me.Controls.OfType(Of GroupBox) 
      c.Hide() 
     Next 

     grpbox1.Show() 
    End Sub 

End Class