пользовательский контроль и получение событий от элементов управления, помещенных в пользовательский элемент управления - PullRequest
0 голосов
/ 18 сентября 2018

Итак, я хотел бы знать, что не так со следующим кодом, особенно с теоретической точки зрения.

У меня есть пользовательский элемент управления, в который я добавил текстовое поле.Когда я щелкаю в текстовом поле, я хотел бы, чтобы в пользовательском элементе управления происходило событие щелчка мышью.На мой взгляд, решение должно быть следующим: создать обработчик события для события щелчка мыши в текстовом поле.в этом обработчике события вызовите событие щелчка мыши для пользовательского элемента управления.

, вот что у меня есть:

    private void txtLog_MouseClick(object sender, MouseEventArgs e)
    {
        this.OnMouseClick(e);
    }

Я пробовал, и это не работает, почемуэто?

PS Мне бы очень хотелось узнать, почему это не так!Правильное решение - это замечательно, но я действительно пытаюсь понять, в чем здесь дело.Спасибо: -)

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

вы должны сделать эти три шага

  • объявить метод делегирования MouseClick для текстового поля
  • назначить метод для текстового поля
  • добавить делегирование к событию this (form) OnMouseClick [в конструкторе элемента управления]

Шаг1:

    private void textBox1_MouseClick(object sender, MouseEventArgs e)
    {

    }

Шаг2:

this.textBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.textBox1_MouseClick);

Step3:

    public myUserControl()
    {
        InitializeComponent();

        this.MouseClick += new MouseEventHandler(textBox1_MouseClick);
    }
0 голосов
/ 18 сентября 2018

Ну, вы можете просто нажать на текстовое поле в режиме конструктора и в окне свойств на вкладке событий добавить событие щелчка.или если вы хотите сделать это во время выполнения, вы можете сделать это так:

 textbox.Click += Txt_Click;

    private static void Txt_Click(object sender, EventArgs e)
    {
       // do your thing
    }

или даже короче:

textbox.Click += (s,e) =>
{
    //do your thing
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...