获取堆栈面板中某个按钮的编号



嘿,我想创建一个包含多个按钮的堆栈面板,当我按下一个按钮时,它会告诉我它是哪个按钮。就像我按下顶部的第二个按钮时一样,我会得到数字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);
}

最新更新