.net 当表单的所有字段都获取字段时,如何启用按钮?
在我的表单中,几乎有30-35个控件,有些是启用的,有些是禁用的,如配偶姓名被禁用,如果此人未婚,并且如果用户选择他们已婚,则控件被启用 最初,提交按钮是禁用的,但一旦所有启用的字段都填写完毕,我希望提交按钮自动启用 我已经为此编写了此代码.net 当表单的所有字段都获取字段时,如何启用按钮?,.net,winforms,c#-4.0,.net,Winforms,C# 4.0,在我的表单中,几乎有30-35个控件,有些是启用的,有些是禁用的,如配偶姓名被禁用,如果此人未婚,并且如果用户选择他们已婚,则控件被启用 最初,提交按钮是禁用的,但一旦所有启用的字段都填写完毕,我希望提交按钮自动启用 我已经为此编写了此代码 if ((nametxt.Text != null) && (f_nametxt.Text != null) && (m_nametxt.Text != null) && (gotra_txt.Text
if ((nametxt.Text != null) && (f_nametxt.Text != null) &&
(m_nametxt.Text != null) && (gotra_txt.Text != null) &&
(panthcb.Text != null) && (fhntext.Text != null) &&
(edulvlcb.Text != null) && (bloodcb.Text != null) &&
(MarritalStatus != null) && (s_nametxt.Text != null) &&
(s_edulvlcb.Text != null) && (s_bgcb.Text != null) &&
(ressi_addresstxt.Text != null) && (ressi_phnotxt.Text != null) &&
(mobi_notxt.Text != null) && (office_addresstxt.Text != null) &&
(occup_typetxt.Text != null) && (occup_naturecb.Text != null) &&
(office_phno1txt.Text != null) && (office_mobnotxt.Text != null))
{
submit_addbtn.Enabled = true;
}
我不知道这是否正确,也不知道我应该在哪里(以何种形式)这样做
请告诉我并帮助我
以下是文本框的“代码完成”按键事件,此事件不会触发
private void mobi_notxt_KeyDown(object sender, KeyEventArgs e)
{
foreach (Control c in this.Controls)
{
TextBox txt = c as TextBox;
if (txt != null)
{
if (!(txt.Enabled && txt.Text != ""))
{
allFilled = false;
break;
}
}
}
if (allFilled)
{
submit_addbtn.Enabled = true;
}
else
{
submit_addbtn.Enabled = false;
}
}
您可以遍历所有文本框控件,并检查它们是否已启用。如果是,请检查文本属性
bool allFilled = true;
foreach (Control c in this.Controls)
{
TextBox txt = c as TextBox;
if (txt != null)
{
if (txt.Enabled && txt.Text == "")
{
allFilled = false;
break;
}
}
}
if (allFilled)
{
button1.Enabled = true;
} else
{
button1.Enabled = false;
}
因此,如果每个启用的字段都包含某些内容,则allFilled布尔值将为true,而在另一种情况下为false
你可以在任何你喜欢的活动上分配它。
例如,在指定给所有文本框的按下键事件中,您可能希望使用计时器每隔一两秒检查文本框的状态,以便自动启用“提交”按钮。i、 e.在计时器的滴答声事件中,调用包含上述
foreach
循环的方法,并使用allFilled
bool设置button.Enabled=true
@Kobunite不是每个文本框上都有一个按键关闭事件更好吗?然后,它会在所有正确的时刻触发,而不是在不必要的时候随机触发。一个按键关闭事件不能像在每个文本框上按下任何键时一样,快速连续地触发许多调用吗?我可能错了,我已经有一段时间没有使用按键事件了。会的,但我想你不会注意到。我在表单中使用键关闭事件只是为了检查您是否按enter键并提交表单。这并不是一个明显的区别,这意味着我已经在类级别声明bool全部填充,在我的代码中存在的所有文本框的键关闭或任何其他事件中,我应该粘贴此代码。但是我必须在哪里对分配给所有文本框的if allfilled=true按钮进行编码。enable=trueIsmobi\u notxt\u KeyDown
?