要求是只要点击第1次TextBox,就textbox.text="1";如果点击同一个textbox第2次,则textbox.text="0";,如果是第3次textbox.text="1";第4次textbox.text="0";,
如果界面上有很多个TextBox 我写在鼠标单击事件里面那不是很麻烦? 有没有简单的方法?

解决方案 »

  1.   

    把所有事件绑定到一个函数。textbox1.click += new System.EventHandler(公用函数);
    textbox2.click += new System.EventHandler(公用函数);
    textbox3.click += new System.EventHandler(公用函数);
    textbox4.click += new System.EventHandler(公用函数);
    ...............
      

  2.   

    事件可以共用啊...你选种20个 textbox,在点击他们的事件,只要1个事件的代码就好 了.
      

  3.   

    1.写成一个JS函数,this指向当前的控件.这样click事件中只需要调用这个函数即可.
    2.动态绑定事件 参考 prototype.js 的event.observe.自动给所有的checkbox绑定一个函数调用
      

  4.   

    所有TextBox调用同一个鼠标单击事件就OK了嘛。
      

  5.   

    那怎么判断 
    if(txtbox点击第1次)
    {
     MessageBox.Show("谢谢大家");
    }
    if(txtbox点击第2次)
    {
     MessageBox.Show("再次谢谢大家");
    }.
    要求是只要点击第1次TextBox,就textbox.text="1";如果点击同一个textbox第2次,则textbox.text="0";,如果是第3次textbox.text="1";第4次textbox.text="0";,
      

  6.   

    可以把点击textbox次数存在viewstate当中
    再编写一个处理函数,所有的的点击事件都共享一个事件处理函数
    每点击一次,把其点击次数加1判定逻辑就为if(ViewState["count"]%2==0)
    {
       textbox.text="0";
    }
    else
    {
       textbox.text="1";}
      

  7.   

    双击任意一个textbox的,切换到代码页生成以下事件: 
     private void textBox1_Click(object sender, EventArgs e)
            {
                string t = "";
                if (ViewState["count"] % 2 == 0)
                {
                    t = "0";
                }
                else
                {
                    t = "1";            }
                ((TextBox)sender).Text = t;
            }
     然后把 textBox1_Click 复制一下,到窗体设计器中ctrl多选每一个textbox,然后切换到事件编辑器中在click事件后粘贴
    textBox1_Click就行了.用代码一条条写比较痛苦~ 
      

  8.   

    额,说了是WinForm的嘛。。10楼怎么还贴7楼的代码出来啊。。
    再编写一个处理函数,所有的的点击事件都共享一个事件处理函数 ,真的没做过。。贴下代码出来供新手学习下吧。
    高手们
      

  9.   

    private void textBox1_Click(object sender, EventArgs e)
    {
                if (((TextBox)sender).Text  == "1")
                {
                   ((TextBox)sender).Text ="0"
                }
                else
                {
                    ((TextBox)sender).Text ="1";
                }
    }
      

  10.   

    引用了一下7楼的,结果viewstate没有定义,随便自己定义一个全局变量行了,但是在textBox1_Click()里加上 clicktimes++;  //clicktimes是自定义的全局变量
      

  11.   

    代码我已经贴上了。其他的textbox你在设置click事件的时候在旁边的下拉框中选定第一个文本框的click事件即可。
      

  12.   

    先设置TextBox的Tag =0;
    textbox1.click += new System.EventHandler(click); 
    textbox2.click += new System.EventHandler(click); 
    textbox3.click += new System.EventHandler(click); 
    textbox4.click += new System.EventHandler(click); public void click(object sender, System.EventArgs e)
    {
    TextBox _tx = (TextBox)sender;
    _tx.Tag = (int)_tx.Tag + 1;
    if((int)_tx.Tag %2==0)
    {
    _tx.Text = 0;
    }
    else
    {
    _tx.Text = 1;
    }
    }
      

  13.   

    yes do as building 16 is ok
      

  14.   

    zzyhuian06142 :
    _tx.Tag = (int)_tx.Tag + 1; 怎么报错检查是否为 NUll的错呢?
      public void click(object sender, System.EventArgs e)
            {
                TextBox _tx = (TextBox)sender;
                _tx.Tag = (int)_tx.Tag + 1;
                if ((int)_tx.Tag % 2 == 0)
                {
                    _tx.Text = "0";
                    _tx.BackColor = Color.White;
                }
                else
                {
                    _tx.Text = "1";
                    _tx.BackColor = Color.Red;
                }
            }        private void Form1_Load(object sender, EventArgs e)
            {
                this.DataComBox1();
                t1.Click += new System.EventHandler(click);
                t2.Click += new System.EventHandler(click);
                t3.Click += new System.EventHandler(click);
                t4.Click += new System.EventHandler(click);          
            }
      

  15.   

    加了段  _tx.Text="0";好了
      

  16.   

    huming_h 谢了。非常感谢。。
      

  17.   


    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>
        <script type="text/javascript">
            function setTextValue(txtID)
            {
                var txt = document.getElementById(txtID);
                
                if(txt.value == "")
                    txt.value = "0";
                else if(txt.value == "0") 
                    txt.value = "1"; 
                else if(txt.value == "1") 
                    txt.value = "0";
            }
        </script>
    </head>
    <body >
        <form id="form1" runat="server">      
            <asp:TextBox ID="TextBox1" runat="server" onclick = "setTextValue(this.id)">0</asp:TextBox><br />
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
        </form>
    </body>
    </html>
      

  18.   


    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
    <title>Untitled Page</title> 
    <script type="text/javascript"> 
    function setTextValue(txtID) 

    var txt = document.getElementById(txtID); if(txt.value == "") 
    txt.value = "0"; 
    else if(txt.value == "0") 
    txt.value = "1"; 
    else if(txt.value == "1") 
    txt.value = "0"; 

    </script> 
    </head> 
    <body > 
    <form id="form1" runat="server"> 
    <asp:TextBox ID="TextBox1" runat="server" onclick = "setTextValue(this.id)">0</asp:TextBox><br /> 
    <asp:TextBox ID="TextBox2" runat="server" onclick = "setTextValue(this.id)"></asp:TextBox><br /> 
    </form> 
    </body> 
    </html>