Подтвердить что ты не робот

Как вызвать событие нажатия кнопки с другого метода

Как я могу вызвать 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().
}
4b9b3361

Ответ 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.