Forms : Enabled/Disable 一个容器(面板)中的所有控件
Forms : Enabled/Disable all controls in a container (panel)
我正在编写一个 C# Forms 应用程序,想知道如何 enable/disable 面板中的所有控件容器。
这是我的代码:
private void EnabledPanelContents(Panel panel, bool enabled)
{
foreach (var item in panel.Controls)
{
item.enabled = enabled;
}
}
panel.Controls 集合中没有已启用的 属性。
如何 enable/disable 面板中的所有控件容器。
提前致谢。
您正在获取控件 var
并对其进行迭代,而 var 不包含任何 property Enabled
。您需要遍历控件并将每个控件设为 Control
。试试这个
private void EnabledPanelContents(Panel panel, bool enabled)
{
foreach (Control ctrl in panel.Controls)
{
ctrl.Enabled = enabled;
}
}
启用可以是 true
或 false
。
如果您将 item 声明为 var(在 foreach 循环中),它将不具有 windows 控件的属性。
您应该将其声明为控件。
试试这个代码片段,它应该可以工作:
foreach (Control item in panel.Controls)
{
item.Enabled = true; // = true: enable all, = false: disable all
}
试试下面的代码,
private void DisableAll_Click(object sender, EventArgs e)
{
EnabledPanelContents(this.panel1, false);
}
private void EnabledPanelContents(Panel panel, bool enabled)
{
foreach (Control item in panel.Controls)
{
item.Enabled= enabled;
}
}
"How can I enable/disable all controls container within a panel."
答:
如果你想禁用或启用面板内的所有控件,你可以直接调用,
Panel panel;
-> panel.Enabled = true;//For enabling all controls inside the panel.
-> panel.Enabled = false;//For disabling all controls inside the panel.
如果您只想启用或禁用面板内的特定控件,则可以遍历控件集合并根据您的要求将其启用状态设置为 true 或 false。
@安舒
如果您的控件是 HTML 控件,则使用
foreach (Control ctrl in myControl1.Controls)
if (ctrl is HtmlControl)
((HtmlControl)ctrl).Disabled = true;
private void Form1_Load(object sender, EventArgs e)
{
foreach (Control item in panel.Controls)
if (ctrl is Button)
((Button)item).Enabled = false;
}
我正在编写一个 C# Forms 应用程序,想知道如何 enable/disable 面板中的所有控件容器。
这是我的代码:
private void EnabledPanelContents(Panel panel, bool enabled)
{
foreach (var item in panel.Controls)
{
item.enabled = enabled;
}
}
panel.Controls 集合中没有已启用的 属性。
如何 enable/disable 面板中的所有控件容器。
提前致谢。
您正在获取控件 var
并对其进行迭代,而 var 不包含任何 property Enabled
。您需要遍历控件并将每个控件设为 Control
。试试这个
private void EnabledPanelContents(Panel panel, bool enabled)
{
foreach (Control ctrl in panel.Controls)
{
ctrl.Enabled = enabled;
}
}
启用可以是 true
或 false
。
如果您将 item 声明为 var(在 foreach 循环中),它将不具有 windows 控件的属性。 您应该将其声明为控件。
试试这个代码片段,它应该可以工作:
foreach (Control item in panel.Controls)
{
item.Enabled = true; // = true: enable all, = false: disable all
}
试试下面的代码,
private void DisableAll_Click(object sender, EventArgs e)
{
EnabledPanelContents(this.panel1, false);
}
private void EnabledPanelContents(Panel panel, bool enabled)
{
foreach (Control item in panel.Controls)
{
item.Enabled= enabled;
}
}
"How can I enable/disable all controls container within a panel."
答: 如果你想禁用或启用面板内的所有控件,你可以直接调用,
Panel panel;
-> panel.Enabled = true;//For enabling all controls inside the panel.
-> panel.Enabled = false;//For disabling all controls inside the panel.
如果您只想启用或禁用面板内的特定控件,则可以遍历控件集合并根据您的要求将其启用状态设置为 true 或 false。
@安舒
如果您的控件是 HTML 控件,则使用
foreach (Control ctrl in myControl1.Controls)
if (ctrl is HtmlControl)
((HtmlControl)ctrl).Disabled = true;
private void Form1_Load(object sender, EventArgs e)
{
foreach (Control item in panel.Controls)
if (ctrl is Button)
((Button)item).Enabled = false;
}