, Ek süreye yarattı: Eğer gerçekten geçerli tasarımınızı tutmak istiyorsanız
, sen Linearise ControlCollection tree into array of Control aşağıdaki ardından do özyinelemeye önlemek ve yapabilirsiniz daha da kolay hale getirir yöntem, sadece böyle bir public static class
oluşturun:
public static class GuiExtensionMethods
{
public static void Enable(this Control con, bool enable)
{
if (con != null)
{
foreach (Control c in con.Controls)
{
c.Enable(enable);
}
try
{
con.Invoke((MethodInvoker)(() => con.Enabled = enable));
}
catch
{
}
}
}
}
Asistan vs. bir kontrol, biçim, menüler, subcontrols, etkinleştirmek veya devre dışı bırakmak için sadece yapın:
this.Enable(true); //Will enable all the controls and sub controls for this form
this.Enable(false);//Will disable all the controls and sub controls for this form
Button1.Enable(true); //Will enable only the Button1
Yani, ben @ pinkfloydx33 cevabı olarak benzer ne yapardınız:
private void Form1_Load(object sender, EventArgs e)
{
this.Enable(false);
Button1.Enable(true);
}
statik ve (el) örnekleri oluşturmadan her yerde kullanabilirsiniz çünkü Uzatma yöntemleri gibi ve daha net var en azından benim için.
Düğmeyi ayrı bir biçimde koymalı mıyım? – SLaks
Yalnızca formdaki tüm denetimler arasında geçiş yapamazsınız, her birinde Enabled özelliğini ayarlıyor musunuz? Kendi döngüsünde, kimliğini/adını kullanarak düğmeyi yoksayın. Ya da devam edin ve döngüdeki her şeyi devre dışı bırakın, hemen ardından düğmeyi etkinleştirin. –