Как вызвать событие нажатия кнопки с другого метода
Как я могу вызвать 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().
}
Ответы
Ответ 1
Вы можете вызвать событие button_click, просто передав ему аргументы:
private void SubGraphButton_Click(object sender, RoutedEventArgs args)
{
}
private void ChildNode_Click(object sender, RoutedEventArgs args)
{
SubGraphButton_Click(sender, args);
}
Ответ 2
Вы можете легко сделать это с помощью следующего фрагмента кода (при условии, что название вашей кнопки btnButton):
btnButton.PerformClick();
Ответ 3
вы можете вызвать событие 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());
}
Ответ 4
Вы можете выполнять различные подходы к работе над этим. Лучший подход заключается в том, что, если ваши обе кнопки должны выполнять одну и ту же работу, вы можете определить третью функцию для выполнения задания. например:
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();
}
Ответ 5
Обычно лучший способ - инициировать событие (щелчок) вместо прямого вызова метода.
Ответ 6
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);"
}
}
Ответ 7
Вы можете просто называть его:
SubGraphButton_Click(sender, args);
Теперь, если ваш SubGraphButton_Click
что-то делает с аргументами, у вас могут быть проблемы, но обычно вы ничего не делаете с ними.
Ответ 8
В WPF вы можете легко сделать это следующим образом:
this.button.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
Ответ 9
Добавьте его в экземпляр делегата Click:
ChildNode.Click += SubGraphButton_Click
который является чернильницей с учетом событий .NET. (Observer).
Ответ 10
Для меня это работало в 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
Использовать событие InvokeOnClick. он работает, даже если кнопка невидима/отключена.
Ответ 12
Для людей, интересующихся, это также работает для нажатия кнопки. Например:
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);
}
При нажатии Enter в текстовом поле (txb) в этом случае он нажмет кнопку, которая активирует MessageBox.