private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar < '0' || e.KeyChar > '9')
if (e.KeyChar != '\b')
e.Handled = true;
}
我不明白这段代码除了退格和数字之外什么都不允许。
e.Handled=True
做什么?答案 0 :(得分:13)
第一个if
语句基本上是说 是一个数字,允许它正常进行 - 否则进入第二个if
语句。
第二个if
语句说如果它也不是退格键,则允许它正常进行 - 否则转到赋值语句。
e.Handled = true;
表示事件处理程序已经处理了事件并处理了它,因此不需要再进行处理。换句话说,请不要采取任何进一步的行动。
这是写同一个身体的另一种方式:
bool isDigit = e.KeyChar >= '0' && e.KeyChar <= '9';
bool isBackspace = e.KeyChar == '\b';
// If we get anything other than a digit or backspace, tell the rest of
// the event processing logic to ignore this event
if (!isDigit && !isBackspace)
{
e.Handled = true;
}
答案 1 :(得分:1)
此代码正在做的是在角色
时设置e.Handled=true
答案 2 :(得分:1)
1和2:实际上是另一种方式。这就是说“如果密钥不是0-9,那么检查它是否是退格。如果它不是退格,那么e.Handled是真的。”
3:当e.Handled设置为true时,控件,父表单以及其他任何听取按键操作的内容都不会执行任何操作。 e.Handled基本上说,“它被照顾,没有人担心它。”