【发布时间】:2014-09-25 17:51:07
【问题描述】:
我有一个文本框,其中包含字母和数字以及您可以在键盘上找到的其他符号。我有这个代码,当我手动输入数据时它工作正常,它只允许我输入数字和删除字母。我想要的一切,除了如果复制和粘贴数据都不起作用。下面是我的代码。
private void textBox7_TextChanged(object sender, EventArgs e)
{
Exception X = new Exception();
TextBox T = (TextBox)sender;
T.Text = T.Text.Trim();
try
{
if (T.Text != "-")
{
int x = int.Parse(T.Text);
}
}
catch (Exception)
{
try
{
int CursorIndex = T.SelectionStart - 1;
T.Text = T.Text.Remove(CursorIndex, 1);
//Align Cursor to same index
T.SelectionStart = CursorIndex;
T.SelectionLength = 0;
}
catch (Exception) { }
}
}
【问题讨论】:
-
请发布编译代码。你有很多错误的括号,我为你修好了。
-
尝试添加断点然后再次粘贴文本?...我想知道粘贴是否会抛出整个字符串,而不是手动键入每个字符将调用一次 TextChanged 方法的位置。 ..
-
@Ian 这正是 paste 的作用。
-
考虑使用 NumericUpDown 控件而不是 TextBox?
-
你可能还想看看这个问题How do I make a textbox that only accepts numbers?或MSDN上的这篇文章How to: Create a Numeric Text Box
标签: c# numbers text-extraction