2012-04-23 95 views
1

我动态创建在C#中的按钮与此逻辑获取C#中动态创建的按钮的文本?

for (int i = 1; i <= vap; ++i) 
{ 
    newButtons[i] = new Button(); 
    newButtons[i].BackColor = Color.Gray; 
    newButtons[i].Name = "Button4" + i.ToString(); 
    newButtons[i].Click += new EventHandler(NewButtons_Click); 

    newButtons[i].Location = new System.Drawing.Point(width,height); 
    newButtons[i].Size = new System.Drawing.Size(76, 38); 

    tabPage5.Controls.Add(newButtons[i]); 
} 

这是创建一个按钮,单击事件也在努力,但我的问题是我不知道如何获得新创建按钮的文本。在表单加载我从数据库中放置按钮的文本,这也正确地发生,但我想知道如何获得动态创建的按钮的文本。

+2

你试过'newButton [i] .Text'吗?您的代码中的 – 2012-04-23 21:00:46

+3

您没有设置文本属性。一旦你设置了它,从NewButtons_Click事件中,你可以检查sender参数,你会发现它是按钮本身,所以你可以返回文本。如果这没有帮助,请解释您最初设置文本的位置以及您希望将文本返回的时间/事件处理程序的位置。 – 2012-04-23 21:00:54

+0

你想什么时候得到按钮的文字? – 2012-04-23 21:02:55

回答

4

从数据库填充它之后,您将无法获取文本(注意不要太早尝试获取文本)。

但这应该工作:

string buttonText = FindControl("Button41").Text; 

更新

既然你想从Click事件中的按钮上的文字,你可以访问发送对象:

Button button = sender as Button; 
string buttonText = button.Text; 
+0

谢谢你现在这个工作非常感谢你。 – alternatefaraz 2012-04-23 21:18:09

0

您只需在添加按钮时设置按钮的Text属性。

0

使用沿线的东西...

string BtnTxt = FindControl(“ExampleButton1”)。Text;

应该可以正常工作。

但是,如果您尝试以随机顺序拉取按钮的文本内容,这可能会稍后导致问题。