跟过去在vb6里的方法一样,就在keydown里面写个if语句

解决方案 »

  1.   

    就是怎么写判断啊,要让+号不能输入进TextBox
      

  2.   

    private void button1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    if ( e.KeyCode.Equals( Keys.Add ))
    {
        处理。
    }
    }
      

  3.   

    if(TextBox1.Text.IndexOf('+')>0)
    {
    有输入+
    }
      

  4.   

    处理如下:
    this.textbox1.text = this.textbox1.text.SubString(0,this.text1.textbox1.length -1)
      

  5.   

    楼上几位先谢了,问题不是说我不知道怎么判断是不是输入+了,而是进入判断条件后如何禁止+显示在TextBox中,brightheroes(闭关)兄的方法是替换,这样+号还是会在TextBox中显示的。
      

  6.   

    用两个事件联合处理:
    1:
    private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    if(e.Shift&&e.KeyValue==187)
    this.textBox1.Clear();
    }
    2:
    private void textBox1_TextChanged(object sender, System.EventArgs e)
    {
    if(textBox1.Text=="+")
    this.textBox1.Clear();
    }
      

  7.   

    这两个事件的处理方法都要加上代码。第一个事件处理时判断是否按下"+"号的。
    此时textBox进行清除,但如上面所说还是有“+”出现,出现“+”时触发第二个事件,然后再次清除TextBox.就不会有那个"+"出现了。
      

  8.   

    private void textBox2_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    if(e.KeyChar.ToString()=="+")
    {
    e.Handled=true;
    base.OnKeyPress(e);
    }
    }
      

  9.   

    谢谢楼上的,如果TextBox原来就有数据,用你的方法就帮以前的数据也清空了。
      

  10.   

    那就用个temp变量吧。
    只需在textBox的onTextChange事件处理方法中加入:
    string a=this.textBox1.Text;
    if(textBox1.Text.IndexOf("+")>0)
    this.textBox1.Text=a.Remove(a.Length-1,1);
    就可以了.
    其他地方不用加了:)
      

  11.   

    private void textBox_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
      if(e.KeyChar == '+')
        e.Handled = true;
     }
      

  12.   

    楼上的方法也不行,我用的.net2003不知道是不是这个问题。
      

  13.   

    private void textBox2_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    if(e.KeyChar.ToString()=="+")
    {
    e.Handled=true;
    base.OnKeyPress(e);
    }
    }