如何在用户控件后面的代码中激发按钮单击事件? [英] How to fire a button Click event in code behind in user control?
本文介绍了如何在用户控件后面的代码中激发按钮单击事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以在用户控件的后台代码中激发按钮单击事件?
推荐答案
在C#中,事件只能从声明它们的类调用。对于Button,有一个名为onClick的方法,它引发ClickEvent,但它是受保护的。因此,您需要声明从Button继承的类,并更改onClick方法的可见性(或在调用base.OnClick的方法上声明一些)
public class MyButton : Button
{
public new void OnClick()
{
base.OnClick();
}
}
XAML示例
<StackPanel Background="White" >
<my:MyButton x:Name="TestButton" Click="HandleClick" Content="Test" />
<TextBlock x:Name="Result" />
</StackPanel>
和代码隐藏:
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
new Timer(TimerCall,null,0,1000);
}
private void TimerCall(object state)
{
Dispatcher.BeginInvoke(()=>TestButton.OnClick());
}
private void HandleClick(object sender, RoutedEventArgs e)
{
Result.Text = String.Format("Clicked on {0:HH:mm:ss}",DateTime.Now);
}
}
尽管直接调用事件处理程序总是更容易。
HandleClick(this,null)
这样就不需要额外的管道了。
这篇关于如何在用户控件后面的代码中激发按钮单击事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文