【问题标题】:Events and Buttons事件和按钮
【发布时间】:2011-06-13 09:42:36
【问题描述】:

我想在单击按钮时获取按钮的文本。

我所做的算法是我有一个函数,它是一个循环,它创建多个按钮并分配数字:

    void ListAllPage()
    {
        if (pageMax < 50)
        {
            //if page max less than 50
            for (int i = 0; i < pageMax; i++)
            {
                Button newBtn = new Button();
                newBtn.Text = i.ToString();
                newBtn.Width = 50;

                newBtn.Click += page_Clicked;

                pageCell.Controls.Add(newBtn);
            }
        }
}

现在按钮将出现在屏幕上,它们的事件将被触发并且功能page_Click;将被执行:

 public void page_Clicked(object sender, EventArgs e)
    {

  //inside this function I want to obtain the button number that was clicked by the user. How do I do that?
    }

注意,我必须在这里描述的所有功能,...

我的想法是将我在循环中创建的所有按钮提供给字典.. 字典..它将采用像这样的变量 btndic.Add(Button b=new Button,b.text);

但问题是如何检索按钮,,,

如果有更好的方法,我想听听...

【问题讨论】:

    标签: c# events button


    【解决方案1】:

    而不是使用点击事件->使用命令事件:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.oncommand.aspx然后你可以区分哪个按钮被点击了

    【讨论】:

      【解决方案2】:

      您只需要将sender 对象转换为Button,或更一般地,Control

      public void page_Clicked(object sender, EventArgs e)
      {
           Control c = sender as Control;
           MessageBox.Show("Clicked on " + c.Text);
      }
      

      此外,使用Tag 属性存储您的自定义信息(数字)可能更合适。在这种情况下,Text 属性可以是任何你喜欢的。

      【讨论】:

        【解决方案3】:

        试试这个方法

        public void page_Clicked(object sender, EventArgs e)
        {
        
           Button btn=(Button)sender;
        }
        

        【讨论】:

          【解决方案4】:

          在您的ListAllPage 方法中将Tag 分配给每个按钮:

          newBtn.Tag = i;
          

          在您的处理程序中,您可以从sender 获取按钮实例:

          var clickedButton = (Button)sender;
          int pageIndex = (int)clickedButton.Tag;
          

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-03
          相关资源
          最近更新 更多