我怎么能用C#中的textBox的KeyPress事件绑定一个checkBox

时间:2015-04-13 16:22:26

标签: c# winforms

您好我是C#可视化编程的新手,我在winform中面临一个问题,即我想让textBox仅在选中复选框时接受数字...问题是我知道如何使用KeyPress事件中的代码,但它不适用于checkBox的想法。

我有这段代码:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
  if(char.IsLetter(e.Keychar))
  {
    e.Handled = true;
  }
}

现在的问题是如何在检查复选框时发生这种情况???

4 个答案:

答案 0 :(得分:2)

你可以做的关键新闻事件:

if (this.checkBoxNumericOnly.Checked)
{
    //your code to only allow numerics...
}

答案 1 :(得分:1)

感谢你们所有人..

我写了这段代码来输入数字但只有一个点'。'它最终起作用...非常感谢你的帮助

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (this.checkBox1.Checked)
        {
            e.Handled = !char.IsDigit(e.KeyChar)&&(e.KeyChar != '.') && !char.IsControl(e.KeyChar);
            if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
            {
                e.Handled = true;
            }


        }
    }

答案 2 :(得分:0)

使用MaskedTextBox控件并处理复选框事件以更改mask property

 private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        if(checkBox1.Checked == true)
        {
            maskedTextBox1.Mask = "000-000-0000";
        }
        else
        {
            maskedTextBox1.Mask = null;
        }
    }

答案 3 :(得分:0)

只需在TextBox的按键事件中尝试此操作:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {

            if(this.checkBox1.Checked)
            {
                //Allow only number
                if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
                {
                    e.Handled = true;
                }
            }            
        }