我用了private void textBox3_TextChanged(object sender, EventArgs e)
        {
            if (textBox3.Text != "")
            {
                button1.Enabled = true;
            }
            else
            {
                button1.Enabled = false;
            }
        }  问题是只能做一个控件,因为里面的自会导致,为什么会这样,如何解决呢。提示还是要的,

解决方案 »

  1.   

    在有提示的基础上,如何让private void textBox3_TextChanged(object sender, EventArgs e)
            {
                if (textBox3.Text != "")
                {
                    button1.Enabled = true;
                }
                else
                {
                    button1.Enabled = false;
                }
            }运行成功,因为要求所有控件填满的,当我点击控件的时候,不应该输了第一个控件,按钮就可以激活,要全部控件输入,按钮才能激活的功能,求大神指导,
      

  2.   

    那就在每个text变化事件中,判断其他文本框是否有空值,如果没有才允许下一步
      

  3.   

    TextBox[] textboxs = new TextBox[] { textBox1, textBox2, textBox3, .. };
    button1.Enabled  = textboxs.All(t => t.Text != "");
      

  4.   

    TextBox[] textboxs = new TextBox[] { textBox1, textBox2, textBox3, .. };
    string[] emptystrings = new string[] { "", "<请输入用户名>", "<请输入密码>", "<确认密码>" };
    button1.Enabled = textboxs.All(t => !emptystrings.Contains(t.Text));
      

  5.   

    if (textBox3.Text != "" && textBox4.Text != ""...有几个加几个)
                {
                    button1.Enabled = true;
                }
                else
                {
                    button1.Enabled = false;
                }
      

  6.   

    如果是我,我就用笨的办法,让每个控件都指定同一个事件,像Leave或是change 然后在里面整个判断
      

  7.   

    就是随便找个控件双击他的Leave 事件 然后写上类似5楼的的代码if (textBox3.Text != "" && textBox4.Text != ""...有几个加几个)
                {
                    button1.Enabled = true;
                }
                else
                {
                    button1.Enabled = false;
                }然后把其它几个控件的Leave事件也指定到这个事件