【发布时间】:2015-02-17 13:02:30
【问题描述】:
我不希望文本框让用户输入字母和以下字符 '-' ,'.'不止一次,但允许他们按“Enter”键。我正在使用以下代码:
private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsNumber(e.KeyChar) || e.KeyChar == 8 || e.KeyChar == '.' || e.KeyChar == '-')
{
return;
}
else
{
e.Handled = e.KeyChar != (char)Keys.Back;
MessageBox.Show("X Origin Can Only Accepts Numbers, a Point '.' and a minus '-'", "ATTENTION", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
【问题讨论】:
-
MaskedTextBox 可以阻止你输入数字或字母或符号,我想输入符号但只允许用户输入允许的符号一次。
-
如果您需要通用解决方案,那么您可以检查已经输入的文本 (
textBox3.Text),如果它包含应该只输入一次的内容,则阻止它。但是,看看你在做什么,你确定MessageBox是在用户输入中间显示的好东西吗?如果用户要编辑文本并发现他无法插入例如-因为已经有-他必须先删除?如果我期望用户格式化输入,那么我会使用MaskedTextBox,否则 - 将在按下确认按钮后检查他的输入。 -
此代码不允许您输入除数字和第 2 行中提到的几个符号之外的任何内容。但是,当输入禁止字符时,会弹出一个消息框,告诉他们为什么该字符没有'未在消息框中输入...无论如何我没有遇到问题,我在阻止用户多次输入上述符号时遇到问题...您知道答案吗?
-
小心按键...有一些方法可以在文本字段中输入数据而不会触发“按键”。就像使用鼠标拖动文本一样。