您好我是C#可视化编程的新手,我在winform中面临一个问题,即我想让textBox仅在选中复选框时接受数字...问题是我知道如何使用KeyPress事件中的代码,但它不适用于checkBox的想法。
我有这段代码:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(char.IsLetter(e.Keychar))
{
e.Handled = true;
}
}
现在的问题是如何在检查复选框时发生这种情况???
答案 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;
}
}
}