将控件设置为启用false如果它们不可见

时间:2016-10-11 09:06:21

标签: c#

您好我想要完成的是 当我将控件的visible属性更改为false时,我还想将enabled属性更改为false。反之亦然。

场景是(假设我们有一个文本框和复选框: 如果选中该复选框,则文本框可见并启用 其他 文本框不可见且未启用

我可以通过事件来做到这一点,但是当有多个控件时,重复的代码太多了。

2 个答案:

答案 0 :(得分:1)

您可以处理控件的VisibleChanged-event

void Controls_VisibleChanged(object sender, EventArgs e)
{
   Control c = (Control) sender;
   c.Enabled = c.Visible;
}

您可以对所有控件使用相同的事件处理程序。例如,在构造函数中:

foreach (Control c in this.Controls)
    c.VisibleChanged += new EventHandler(this.Controls_VisibleChanged);

答案 1 :(得分:0)

我无法理解你的问题,但我会写一些可能有用的东西。

双击您的复选框并编辑CheckedChanged事件并编写代码:

if (!<CheckBoxName>.Checked)
{
    <TextBoxName>.Enabled = false;
    <TextBoxName>.Hide();
}
else
{
    <TextBoxName>.Enabled = true;
    <TextBoxName>.Show();
}

注意:
<CheckBoxName> =您的复选框名称
<TextBoxName> =您的TextBox名称

更改CheckBox.Checked属性并将其更改为true以使代码顺利运行。

我希望能帮到你...