嘿,我想创建一个包含多个按钮的堆栈面板,当我按下一个按钮时,它会告诉我它是哪个按钮。就像我按下顶部的第二个按钮时一样,我会得到数字2,依此类推。
按钮是用这个循环创建的:
for (int i = 0; i < LBresponse.Items.Count; i++)
{
System.Windows.Controls.Button BTclear = new Button();
BTclear.Content = "Clear";
BTclear.Width = 50;
BTclear.Height = 20;
BTclear.HorizontalAlignment = HorizontalAlignment.Right;
BTclear.Click += Button_Click;
BTclear.IsEnabled = true;
STPresponse.Children.Add(BTclear);
}
我可以用按钮的位置来做,但我希望有更好的解决方案。
一个想法是在创建按钮时将数字放入上下文中,但这并不美观。
您可以将数字或索引存储在某个位置,例如Tag
属性中:
for (int i = 0; i<LBresponse.Items.Count; i++)
{
System.Windows.Controls.Button BTclear = new Button();
BTclear.Tag = i;
BTclear.Content = "Clear";
BTclear.Width = 50;
BTclear.Height = 20;
BTclear.HorizontalAlignment = HorizontalAlignment.Right;
BTclear.Click += (ss, ee) =>
{
MessageBox.Show(((Button)ss).Tag.ToString());
};
BTclear.IsEnabled = true;
STPresponse.Children.Add(BTclear);
}