使用以下内容:
<StackPanel>
<Button Content="Button1" x:Name="btn1" Click="Button_Click"/>
<Button Content="Button2" x:Name="btn2" Click="Button_Click"/>
<TextBox x:Name="output"></TextBox>
</StackPanel>
如何使用C#中的单个事件处理程序函数而不是每个按钮一个来处理任何按钮的左键单击?
如果您想在stackpanel中放置多个类似的按钮,并且不想到处写Click="Button_Click"
,那么您可以通过下一种方式来完成。
- 将
runat="server"
属性添加到StackPanel并添加一些ID,例如ID="ButtonsContainer"
- 通过StackPanel中的所有控件进行迭代:
for (var i = 0; i < ButtonsContainer.Controls.Count; i++) {
var button = ButtonsContainer.Controls[i] as Button;
if(button != null)
button.Click += Button_Click;
}