获取堆栈面板中某个Button的编号
Get the number of a certain Button in stack panel
嘿,我想创建一个包含多个按钮的堆栈面板,当我按下一个按钮时,它会告诉我它是哪个按钮。就像当我按下从顶部数第二个按钮时,我得到数字 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);
}
嘿,我想创建一个包含多个按钮的堆栈面板,当我按下一个按钮时,它会告诉我它是哪个按钮。就像当我按下从顶部数第二个按钮时,我得到数字 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);
}