C#: вызов метода обработчика событий нажатия кнопок, на самом деле не нажимая кнопку

У меня есть кнопка в моем aspx файле, названном btnTest. .cs файл имеет функцию, которая вызвана, когда кнопка нажата.

btnTest_Click(object sender, EventArgs e)

Как я могу вызвать эту функцию из своего кода (т.е. на самом деле не нажимая кнопку)?

21
задан razlebe 5 March 2010 в 22:48
поделиться

7 ответов

btnTest_Click(null, null);

При условии, что метод не использует ни один из этих параметров (очень часто это не так.)

Честно говоря, это неприятно. Если у вас есть код, который нужно вызывать, вы должны следовать следующему соглашению:

protected void btnTest_Click(object sender, EventArgs e)
{
   SomeSub();
}

protected void SomeOtherFunctionThatNeedsToCallTheCode()
{
   SomeSub();
}

protected void SomeSub()
{
   // ...
}
29
ответ дан 29 November 2019 в 06:29
поделиться

Это просто метод в вашей форме, вы можете вызывать его так же, как и любой другой метод. Вам просто нужно создать объект EventArgs, чтобы передать ему (и передать ему дескриптор кнопки как отправитель )

2
ответ дан 29 November 2019 в 06:29
поделиться

Используйте

btnTest_Click( this, new EventArgs() );
18
ответ дан 29 November 2019 в 06:29
поделиться

Вы можете вызывать btnTest_Click так же, как и любую другую функцию.

Самая основная форма будет такой:

btnTest_Click(this, null);
0
ответ дан 29 November 2019 в 06:29
поделиться

btnTest_Click(new object(), EventArgs.Empty)

0
ответ дан 29 November 2019 в 06:29
поделиться

Если метод не использует ни sender, ни e, вы можете вызвать:

btnTest_Click(null, null);

Что вам, вероятно, следует рассмотреть, так это извлечение кода из этого метода в собственный метод, который вы можете вызвать как из обработчика события нажатия кнопки, так и из любого другого места в коде, где требуется эта функциональность.

4
ответ дан 29 November 2019 в 06:29
поделиться

Просто позвоните:

btnTest_Click(null, null);

Просто убедитесь, что вы не пытаетесь использовать ни один из этих параметров в функции.

2
ответ дан 29 November 2019 в 06:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: