仅允许文本中的数字

textBox.KeyPress += (sender, e) => e.Handled = !char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar);

这只允许在 TextBox 中使用数字和控制字符,其他组合可以使用相同的方法将 Handle 属性设置为 true 来阻止文本。

用户仍然可以复制/粘贴不需要的字符,因此应该在 TextChanged 上进行额外检查以清除输入:

textBox.TextChanged += (sender, e) => textBox.Text = Regex.Match(textBox.Text, @"\d+").Value

在此示例中,使用正则表达式来过滤文本。

**** 如果可能, NumericUpDown 应该是数字的首选。