2013-06-04 40 views
1

我不能用代码来删除以下无法清除文本数据

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
    {    
     if(char.IsDigit(e.KeyChar)==false) 
     { 
      count++; 
     } 
     if (count == 1) 
     { 
      textBox1.Text = (""); 
      count = 0; 
     } 
    } 

使用clear方法以及我进入在文本框中停留字母表尝试文本数据,当我键入任意键它被覆盖,但我想的文本框为空

回答

3

你只需要说你处理该事件:

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 
     } 
    } 
+0

上述步骤解决的问题你可以让我什么是编译器在e.handled行PLZ – sainath

+0

基本上你是在按键事件期间清除文本框,当事件完成新的字符会写出来。通过说你处理了事件,按键被忽略(所以新输入的字符被忽略) – NDJ

+0

这仍然不起作用,因为你可以复制和粘贴一堆字母。我建议你使用我的方法,而不是使用TextChanged事件。使用e.Handled仍然非常酷,可以派上用场。 – CodeCamper

0

使用textBox1.Text = ""; OR textBox1.clear();

这要删除的第二次和分组数据将清除文本框。

+0

没了它我以前不工作 – sainath

+0

.clear();工作正常。 – Freelancer

+0

我真的很惊讶,因为即使我认为它会工作,但它每次都失败我们可以执行屏幕共享,因为我有一个g +帐户,可以显示它不工作 – sainath

0

你做错了。你可以用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; } 
    } 
0

添加到您的文本框的按键事件您的问题将得到解决

e.handle = true;