如何从其他方法调用SubGraphButton_Click(object sender, RoutedEventArgs args)
?
private void SubGraphButton_Click(object sender, RoutedEventArgs args)
{
}
private void ChildNode_Click(object sender, RoutedEventArgs args)
{
// call SubGraphButton-Click().
}
答案 0 :(得分:57)
您可以通过简单地将参数传递给它来调用button_click事件:
private void SubGraphButton_Click(object sender, RoutedEventArgs args)
{
}
private void ChildNode_Click(object sender, RoutedEventArgs args)
{
SubGraphButton_Click(sender, args);
}
答案 1 :(得分:45)
您可以通过以下代码轻松完成此操作(假设您的按钮名称为 btnButton ):
btnButton.PerformClick();
答案 2 :(得分:15)
你可以通过传递来调用button_click事件。
private void SubGraphButton_Click(object sender, RoutedEventArgs args)
{
}
private void ChildNode_Click(object sender, RoutedEventArgs args)
{
SubGraphButton_Click(sender, args);
}
也没有通过..
private void SubGraphButton_Click(object sender, EventArgs args)
{
}
private void Some_Method() //this method is called
{
SubGraphButton_Click(new object(), new EventArgs());
}
答案 3 :(得分:7)
您可以执行不同的方法来解决此问题。最好的方法是,如果您的两个按钮都假设执行相同的工作,您可以定义第三个功能来完成工作。例如:
private void SubGraphButton_Click(object sender, RoutedEventArgs args)
{
myJob()
}
private void ChildNode_Click(object sender, RoutedEventArgs args)
{
myJob()
}
private void myJob()
{
// Your code here
}
但如果你仍坚持按照自己的方式行事,最好的行动是:
private void SubGraphButton_Click(object sender, RoutedEventArgs args)
{
}
private void ChildNode_Click(object sender, RoutedEventArgs args)
{
SubGraphButton_Click.PerformClick();
}
答案 4 :(得分:4)
通常更好的方法是触发事件(点击),而不是直接调用方法。
答案 5 :(得分:3)
private void PictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show("Click Succes");
}
private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
PictureBox1_Click(sender, e); //or try this one "this.PictureBox1_Click(sender, AcceptButton);"
}
}
答案 6 :(得分:2)
你可以简单地称之为:
SubGraphButton_Click(sender, args);
现在,如果你的SubGraphButton_Click
对args做了些什么,你可能会遇到麻烦,但通常你不会对它们做任何事情。
答案 7 :(得分:2)
在WPF中,您可以通过以下方式轻松完成:
this.button.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
答案 8 :(得分:1)
从任何地方调用它的简单方法就是使用“ null”和“ RoutedEventArgs.Empty”,如下所示:
SubGraphButton_Click(null, RoutedEventArgs.Empty);
答案 9 :(得分:0)
将其添加到Click委托的实例:
ChildNode.Click += SubGraphButton_Click
使用模式.NET事件跟随(Observer)。
答案 10 :(得分:0)
对我而言,这适用于WPF
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
RoutedEventArgs routedEventArgs = new RoutedEventArgs(ButtonBase.ClickEvent, Button_OK);
Button_OK.RaiseEvent(routedEventArgs);
}
}
答案 11 :(得分:0)
使用InvokeOnClick事件。即使按钮不可见/禁用,它也能正常工作
答案 12 :(得分:0)
对于想知道的人,这也适用于单击按钮。 例如:
private void btn_Click(object sender, EventArgs e)
{
MessageBox.Show("Test")
}
private void txb_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)13)
{
btn_Click(sender, e);
}
在这种情况下,当在文本字段(txb)中按Enter键时,它将单击激活消息框的按钮。
答案 13 :(得分:0)
我们在这个项目中有2个表格。 更改为主要形式
private void button1_Click(object sender, EventArgs e)
{
// work
}
到
public void button1_Click(object sender, EventArgs e)
{
// work
}
以及其他形式,当我们需要上述功能时
private void button2_Click(object sender, EventArgs e)
{
main_page() obj = new main_page();
obj.button2_Click(sender, e);
}
答案 14 :(得分:0)
对于WPF:
YourButtonName.RaiseEvent(new RoutedEventArgs(System.Windows.Controls.Primitives.ButtonBase.ClickEvent));