2012-04-23 51 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;

應該可以正常工作。

但是,如果您嘗試以隨機順序拉取按鈕的文本內容,這可能會稍後導致問題。