我正在构建一个连接到私有数据库的小应用程序。在我的应用程序中,我在文本框中输入数据,在单击按钮后在数据库中记录数据。我面临的问题是我想让某个文本框只接受整数以防止输入错误类型的数据。
答案 0 :(得分:5)
尝试以下它会帮助你...
以下代码仅接受Numbers
和dots(.)
<强> Designer.CS 强>
this.txtNumbers.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtNumbers_KeyPress);
代码背后:
private void txtNumbers_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar)
&& !char.IsDigit(e.KeyChar)
&& e.KeyChar != '.')
{
e.Handled = true;
}
if (e.KeyChar == '.'
&& (sender as TextBox).Text.IndexOf('.') > -1)
{
e.Handled = true;
}
}
处理复制和粘贴...
private void textBox1_TextChanged(object sender, EventArgs e)
{
int result;
if (txtNumbers.Text != "")
{
if (!int.TryParse(txtNumbers.Text, out result))
{
txtNumbers.Text = "";
MessageBox.Show("Invalid Integer");
}
}
}
答案 1 :(得分:0)
最简单。
将keypress事件处理程序添加到文本框
eventarg参数具有按下的键。 (e.KeyChar
)
如果不,则将eventargs参数的合法密钥集e.Handled
设置为true。
不要忘记允许退格,剪切,复制和粘贴等。 如果您想要否定,则允许减号,但仅作为第一个字符。
如果您想要格式化/格式化显示,例如括号中的否定数,千位分隔符,小数位分隔符,货币符号等,最好敲除用户控件并将其全部包装在那里。
答案 2 :(得分:0)
您可以使用专为数字设计的控件NumericUpDown
。它为您提供了对小数位和最小/最大的附加控制。