Button btn=(Button)senderbtn.Name
  
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/

解决方案 »

  1.   

    你在动态生成时最好也给它们赋个名称,这样feiyun0112代码才有意义
      

  2.   

    有名称的啦,现在是Button单击的时候要知道是那个按钮
    还是时间组件
      

  3.   

    用一楼的方法
    在buttton的onclick事件中。
    Button   btn=(Button)sender ;string a=btn.Name; 
      

  4.   

    好奇怪我取和Name值为空,怎解决
      

  5.   

    代码我发一下,以免大家误解        
           private int timerNum;
            private int btnNum; // number of wanted Button
            private int lblNum;
            private System.Windows.Forms.Timer[] timArray;
            private System.Windows.Forms.Button[] btnArray; // Declaring array of Button
            private System.Windows.Forms.Label[] lblArray; // Declaring array of Label
            private System.Windows.Forms.TextBox[] txtArray; // Declaring array of TextBox
            private void button1_Click(object sender, EventArgs e)
            {
                ShowTimer();
            }
            private void ShowTimer()
            {
                timerNum = 6;
                AddControls("tim", timerNum); // Create six Timer
                int n = 1;
                while (n < timerNum + 1)
                {
                    timArray[n].Interval = 10000;
                    timArray[n].Enabled = true;
                    timArray[n].Tick += new System.EventHandler(timerTick);
                    
                    n++;
                }        }
            private void AddControls( string anyControl, int cNumber)
            {
                switch (anyControl)
                {
                    case "btn": // anyControl = btn to Add Button
                        {
                            // assign number of controls 
                            btnArray = new System.Windows.Forms.Button[cNumber + 1];
                            for (int i = 0; i < cNumber + 1; i++)
                            {
                                // Initialize one variable
                                btnArray[i] = new System.Windows.Forms.Button();
                            }
                            break;
                        }
                    case "lbl": // anyControl = lbl to Add Label
                        {
                            // assign number of controls 
                            lblArray = new System.Windows.Forms.Label[cNumber + 1];
                            for (int i = 0; i < cNumber + 1; i++)
                            {
                                // Initialize one variable
                                lblArray[i] = new System.Windows.Forms.Label();
                            }
                            break;
                        }
                    case "txt": // anyControl = txt to Add TextBox
                        {
                            // assign number of controls 
                            txtArray = new System.Windows.Forms.TextBox[cNumber + 1];
                            for (int i = 0; i < cNumber + 1; i++)
                            {
                                // Initialize one variable
                                txtArray[i] = new System.Windows.Forms.TextBox();
                            }
                            break;
                        }
                    case "tim":
                        {
                            timArray=new System.Windows.Forms.Timer[cNumber + 1];
                            for(int i=0;i<cNumber + 1;i++)
                            {
                                timArray[i] = new System.Windows.Forms.Timer(this.components);
                            }
                            break;
                        }
                }
            }        private void timerTick(Object sender, System.EventArgs e)
            {
                string n = ((System.Windows.Forms.Timer)sender).Site.Name.ToString();
                MessageBox.Show("You have clicked button ");        }        private void button2_Click(object sender, EventArgs e)
            {
                ShowButton();
            }        private void ShowButton()
            {
                int xPos = 8;
                int yPos = 8;
                btnNum = 6;
                AddControls("btn", btnNum); // Create six Buttons
                int n = 1;
                while (n < btnNum + 1)
                {
                    btnArray[n].Tag = n;
                    btnArray[n].Width = 72;
                    btnArray[n].Height = 24;
                    btnArray[n].Text = "Button" + btnArray[n].Tag.ToString();
                    if (yPos > 80) // Three buttons in one column
                    {
                        yPos = 8;
                        xPos = xPos + btnArray[n].Width + 8;
                    }
                    btnArray[n].Left = xPos;
                    btnArray[n].Top = yPos;
                    yPos = yPos + btnArray[n].Height + 8;
                    this.Controls.Add(btnArray[n]); // Let panel hold the Buttons
                    // the Event of click Button
                    btnArray[n].Click += new System.EventHandler(ClickButton);
                    n++;
                }            
            }
            //===================== Functions for Button Array ======================
            // Result of the event click Button
            public void ClickButton(object sender, System.EventArgs e)
            {
                System.Windows.Forms.MessageBox.Show("You have clicked button " +
                    ((System.Windows.Forms.Button)sender).Tag.ToString());
                string ddd = ((System.Windows.Forms.Button)sender).Text.ToString();
                //Button   btn=(Button)sender;
                string btnname = ((Button)sender).Name.ToString();        }        private void timer1_Tick(object sender, EventArgs e)
            {
                //string n = ((System.Windows.Forms.Timer)sender).Site.Component;
                string tt = sender.ToString();
            }
        }
      

  6.   

    取名称的目的是什么?你可以使用((Button)sender).Text等属性来判断也可以用Tag来记录下标
    btnArray[n].Tag = n;
    btnArray[n].Click += new System.EventHandler(ClickButton); public void ClickButton(object sender, System.EventArgs e)
    {
        //btnArray[(int)((Button)sender).Tag];
    }
      

  7.   

    你生成Button的时候,没有赋名称呀.应该如下:case   "btn ":   //   anyControl   =   btn   to   Add   Button 
                                            { 
                                                    //   assign   number   of   controls   
                                                    btnArray   =   new   System.Windows.Forms.Button[cNumber   +   1]; 
                                                    for   (int   i   =   0;   i   <   cNumber   +   1;   i++) 
                                                    { 
                                                            //   Initialize   one   variable 
                                                            btnArray[i]   =   new   System.Windows.Forms.Button(); 
                                                            btnArray[i].Name   =  "btn"+i.ToString() ; 
                                                    } 
                                                    break; 
                                            } 
      

  8.   

    你生成Button的时候,没有赋名称呀.应该如下: case   "btn   ":   //   anyControl   =   btn   to   Add   Button   
    {   
    //   assign   number   of   controls   
    btnArray   =   new   System.Windows.Forms.Button[cNumber   +   1];   
    for   (int   i   =   0;   i   <   cNumber   +   1;   i++)   
    {   
    //   Initialize   one   variable   
    btnArray[i]   =   new   System.Windows.Forms.Button();   
    btnArray[i].Name   = "btn "+i.ToString();   
    }   
    break;   
    }   
      

  9.   

    楼上是对的,但是Timer是没有Name这个属性的其他我最想要就是知道那个Timer
    private   void   timerTick(Object   sender,   System.EventArgs   e) 
                    { 
                            string   n   =   ((System.Windows.Forms.Timer)sender).Site.Name.ToString(); 
                            MessageBox.Show( "You   have   clicked   button   ");                 } 
      

  10.   

    我要取得是那个时间Timer控件的Tick然后再去执行另一个传入参数到另一个函数执行如下
    private       void       timerTick(Object       sender,       System.EventArgs       e)   
                                    {   
                                         int yy=取得Timer控件;           
                                          CheckID(yy);
                                    }   
      

  11.   

    Timer也是有Name属性的呀。
      

  12.   

    1、你在创建Timer的时候,把Name赋上;
    2、取法跟Button是一样的;
      

  13.   

    wisest(无影无忠)你试过没有,我试过了是没有的
      

  14.   

    哦,我没看清楚。
    那你这样子做吧创建Timer:Timer t = new Timer(100);
    t.tag="12345";接下去,你会做了吧?