这是我的问题,是的,我是新手
我有一个表单(对话框),有两个复选框(chbxAlpha和chbxBravo),两个文本框(tbxAlpha和tbxBravo),只能接收6个字符,两个按钮(提交和取消)
表单由错误事件
加载如果Alpha是错误,当加载表单时,我将检查Alpha Checkbox然后填写Alpha Textbox中的错误
如果字符是< >超过6时,会出现一个消息框提醒用户他们必须提交6个字符,不能再少提及
当我按下提交按钮时,表单会自动检查Bravo Checkbox,即使没有错误我也必须填写
我无法弄明白为什么
以下是代码
private void btnSubmit_Click(object sender, EventArgs e)
{
if (chbxAlpha.Checked = true && tbxAlpha.Text.Length != 6)
{
MessageBox.Show("A valid entry requires 6 digits. Please use forward zeros if data is less than 6 digits eg 1234 = 001234.Thankyou");
tbxAlpha.Text = "";
tbxAlpha.Focus();
}
else
{
this.DialogResult = DialogResult.OK;
}
if (chbxBravo.Checked = true && tbxBravo.Text.Length != 6)
{
MessageBox.Show("A valid entry requires 6 digits. Please use forward zeros if data is less than 6 digits eg 1234 = 001234.Thankyou");
tbxBravo.Text = "";
tbxBravo.Focus();
}
else
{
this.DialogResult = DialogResult.OK;
}
}
private void chbxBravo_CheckedChanged(object sender, EventArgs e)
{
if (chbxBravo.Checked == true)
{
tbxBravo.Visible = true;
tbxBravo.Focus();
}
}
private void chbxAlpha_CheckedChanged(object sender, EventArgs e)
{
if (chbxAlpha.Checked == true)
{
tbxAlpha.Visible = true;
tbxAlpha.Focus();
}
}
}
}
我遇到的另一个问题是如何防止使用Null char,例如。 123space56
感谢任何帮助
JJ
答案 0 :(得分:1)
看起来你在btnSubmit_click函数的if语句中都使用赋值运算符而不是相等运算符。
在回答第二个问题时,您可以使用正则表达式检查所有6个字符是否为数字。
private void btnSubmit_Click(object sender, EventArgs e)
{
Regex regexIs6Digits = new Regex(@"^\d{6}$");
if (chbxAlpha.Checked && !regexIs6Digits.IsMatch(tbxAlpha.Text))
{
MessageBox.Show("A valid entry requires 6 digits. Please use forward zeros if data is less than 6 digits eg 1234 = 001234.Thankyou");
tbxAlpha.Text = "";
tbxAlpha.Focus();
}
else
{
this.DialogResult = DialogResult.OK;
}
if (chbxBravo.Checked && !regexIs6Digits.IsMatch(tbxBravo.Text))
{
MessageBox.Show("A valid entry requires 6 digits. Please use forward zeros if data is less than 6 digits eg 1234 = 001234.Thankyou");
tbxBravo.Text = "";
tbxBravo.Focus();
}
else
{
this.DialogResult = DialogResult.OK;
}
}