C# 无法清除文本框数据
我无法用下面的代码删除文本框数据C# 无法清除文本框数据,c#,wpf,textbox,C#,Wpf,Textbox,我无法用下面的代码删除文本框数据 private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if(char.IsDigit(e.KeyChar)==false) { count++; } if (count == 1) { textBox1.Text = (""
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(char.IsDigit(e.KeyChar)==false)
{
count++;
}
if (count == 1)
{
textBox1.Text = ("");
count = 0;
}
}
尝试使用clear
方法,并且我输入的字母保留在文本框中,当我键入任何键时,它会被覆盖,但我希望文本框第二次为空,并删除上一个数据使用textBox1.Text=”“代码>或文本框1.clear()代码>
这将清除您的文本框。您只需说您已处理该事件:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsDigit(e.KeyChar) == false)
{
count++;
}
if (count == 1)
{
textBox1.Text = ("");
count = 0;
e.Handled = true; // this bit fixes it
}
}
你做错了。您只需使用Ctrl+V组合键粘贴一组字母即可。删除KeyDown事件并创建TextChanged事件。这段代码应该完成您正在尝试的任务。请告诉我,如果有任何更多的细节,我会补充我的答案
private void textBox1_TextChanged(object sender, EventArgs e)
{
foreach (char c in textBox1.Text)
if (!char.IsDigit(c)) { textBox1.Clear(); break; }
}
将此添加到文本框按键事件,您的问题将得到解决
e.handle = true;
我真的很惊讶,因为即使我认为它会工作,但每次都会失败。我们可以执行屏幕共享吗?因为我有一个g+帐户,可以显示它不工作。通过上述步骤解决了问题。你能告诉我编译器在e.handled行PLZ上做了什么吗?基本上,你在按键事件期间清除了文本框,当事件完成时,将写入新字符。如果说您处理了事件,则忽略了按键(因此忽略了新键入的字符),这仍然不起作用,因为您可以复制并粘贴一堆字母。我建议您使用我的方法,而不是使用TextChanged事件。使用e.Handled仍然很酷,可以在其他方面派上用场。