Как вызвать событие MouseClick? - PullRequest
3 голосов
/ 23 марта 2011

Здравствуйте, я прочитал, что события могут быть вызваны так же, как методы.Ну, это работает для моих пользовательских событий (я создаю делегата, событие, и я могу вызвать событие, вызвав его).Однако я не могу вручную вызывать события, такие как MouseClick и другие, он постоянно говорит, что он должен появляться слева от оператора + =.В чем проблема?

Ответы [ 5 ]

4 голосов
/ 23 марта 2011

Хотя я уверен, что вы получите другие ответы, более информативные, чем этот, в принципе вы не можете «вызвать» событие вне класса, в котором оно содержится.MSDN имеет это, чтобы сказать о событиях

События - это особый тип многоадресного делегата, который может вызываться только из класса или структуры, где они объявлены (класс издателя).Если другие классы или структуры подписываются на событие, их методы-обработчики будут вызваны, когда класс издателя инициирует событие.

Если вы хотите буквально вызвать событие, скажем, для элемента управления Windows FormsMouseClick, вам нужно создать подкласс этого элемента управления и либо вызвать base.OnMouseClick (), либо переопределить его.

2 голосов
/ 23 марта 2011

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

К сожалению, это работает только для кнопок, а не для других типов Control s... кроме MenuItem.

1 голос
/ 23 марта 2011

Если вы хотите нажать кнопку, вы должны позвонить:

button1.PerformClick();

Если вы хотите позвонить MouseClick, пожалуйста, обратитесь к этому форуму , в c # есть решение с использованием windows api:

0 голосов
/ 26 марта 2016

Допустим, вы хотите вручную поднять событие «клик». Это работает для меня:

public partial class CustomButton : UserControl
{
    public new event EventHandler Click;

    private void lblText_Click(object sender, EventArgs e)
    {
        Click(this, e);
    }

}
0 голосов
/ 23 марта 2011
private void button1_Click(object sender, EventArgs e)
{
    //Enter your code here
}

void Page_Load(object sender, EventArgs e){
    this.button1.Click += new System.EventHandler(this.button1_Click);

    this.button1_Click(this, e);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...