复选框自检C#

时间:2015-02-15 07:18:55

标签: c# asp.net

这是我的问题,是的,我是新手

我有一个表单(对话框),有两个复选框(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

1 个答案:

答案 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;
    }
}