为什么WPF中的代码不起作用?
Run Code Online (Sandbox Code Playgroud)private void button1_Click(object sender, EventArgs e) { MessageBox.Show("yes"); } private void Form1_Load(object sender, EventArgs e) { button1.PerformClick(); }
我需要命令.
小智 24
要使用Windows窗体应用程序的样式,您需要编写以下扩展方法:
namespace System.Windows.Controls
{
public static class MyExt
{
public static void PerformClick(this Button btn)
{
btn.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在你可以将它用于任何按钮,假设一个名为"btnOK"的按钮:
btnOK.PerformClick();
Run Code Online (Sandbox Code Playgroud)
Mus*_*ici 11
等等..有简单的方法.如果您的按钮名称是button1并且button1单击了已订阅的事件,您将只调用该事件
button1_Click(this,null);
Run Code Online (Sandbox Code Playgroud)
而不是PerformClick()使用RaiseEvent()
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("yes");
}
private void Form1_Load(object sender, EventArgs e)
{
RoutedEventArgs newEventArgs = new RoutedEventArgs(Button.ClickEvent);
button1.RaiseEvent(newEventArgs);
}
Run Code Online (Sandbox Code Playgroud)
我认为解决您的问题的最短且最有效的解决方案只需一行即可完成。
button1.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
Run Code Online (Sandbox Code Playgroud)
这应该适用于 WPF C#
因为 PerformClick 是 WindowsForms Button 控件上的一个方法:
http://msdn.microsoft.com/en-us/library/system.windows.forms.button.performclick.aspx
不在 WPF Button 控件上:
http://msdn.microsoft.com/en-us/library/system.windows.controls.button_methods.aspx
要自动单击按钮,您可能需要查看 UI 自动化框架:
http://msdn.microsoft.com/en-us/library/ms747327.aspx
| 归档时间: |
|
| 查看次数: |
19098 次 |
| 最近记录: |