2012-01-23 44 views
2

Silverlight控件的名稱: -找我創造了許多Silverlight的按鈕從而在C#

 string b = "Button"; 
     for (int i = 0; i < 10; i++) 
     { 
      Button btn = new Button(); 
      btn.Name = b+i.ToString(); 
      btn.FontSize += 2; 

      btn.Content = "Click Me " ; 
      btn.Click += new RoutedEventHandler(btn_Click); 
      stack.Children.Add(btn); 
     } 
     LayoutRoot.Children.Add(stack); 

在按鈕單擊事件我想被按下的按鈕的名稱。我曾希望 string snd = sender.ToString();會產生的信息,但它給出的是System.Windows.Controls.Button。任何人都可以請幫忙。謝謝。

+0

你的意思是顯示在按鈕上的文本? – jcopenha

+0

沒有按鈕的名稱,即使用代碼'btn.Name = b + i.ToString()創建的名稱;' – user995689

回答

7

您需要將sender投射到一個按鈕上。

public void btn_Click(object sender, EventArgs e) 
{ 
    var btn = (Button)sender; 
    Console.WriteLine(btn.Name); 
} 
+0

這正是我想要的,非常感謝您提供了一個非常棒的答案。 – user995689

0

試試這個:

(sender as Button).Name 

source

4
public void btn_Click(object sender, EventArgs e) 
{ 
    var b = sender as Button; 

    if (b != null) 
    { 
     var name = b.Name; 
     // do something with name 
    } 
}