2010-10-02 22 views
0

你好所有 我有一个问题,我想我的窗口窗体上的这么多控制(LABEL,文本框)我如何禁用所有控制当我的表单加载捕获一个由一个和可见性假对我来说是非常令人满意的,之后我想通过函数内部的控制并设置它的宽度和高度我可以实现它。如何通过控制里面的功能

IM使用内部之下,但其作用是不能够将身高和体重 我所有的标签和Textboxe采用默认值

在此先感谢

沙善TYAGI

public void Setlabel(Control ctl2) 
    { 
     Control lbl = (Control)ctl2; 
     lbl.Visible = Visible; 
     lbl.Size=new Size(123,123); 
     lbl.Height = 40; 
     //lbl.PreferredSize = new Size(100, 100); 

    } 
+0

当你像这样打字时,你*已经*使用VB.NET。 – 2010-10-02 15:54:29

回答

1

如果您想要为该组控件设置可见性,可以将它们放在同一个Panel控件中,然后只更改该面板的Visible属性。

至于你的问题的其他部分,你提供的代码应该工作,但如果在正确的时间调用。您必须认识到,您的控件的宽度或高度不能超过控件所在的容器。例如,如果你在构造函数中调用了这个函数,那么它将不起作用,因为你的表单还没有调整自己的尺寸,并且为了让你的控件足够大,它的尺寸也很小。相反,您应该在表单的Load事件(假设您的控件的所有容器已被该时间加载)或表单的Resize事件上调用此函数(但请注意此事件,因为它也会在用户调整大小后执行窗户)。
当然,您还可以确保所有控件的大小足以让您的控件在调整大小之前调整大小。

+0

对于我的第一次过去它不可能像一个Asp.net页面使用ONe循环我们可以禁用所有的控制。 – Shashank 2010-10-02 14:54:19

+1

可以通过所有控件创建循环并更改启用和/或可见属性。只需要: foreach(Form.Controls中的var控件) { control.Enabled = false; control.Visible = false; } 但是最好把这些控件放在同一个容器控件(如Panel)中,只是改变容器的属性。 – 2010-10-02 14:58:59