Пользовательский элемент управления, который предоставляет событие OnClick кнопки Control - PullRequest
3 голосов
/ 28 сентября 2011

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

Я хочу выбросить их на бланке, а затем перейти к событиям для моегоконтролировать и указать, что делать для события Click .

Если мой пользовательский элемент управления CtrlButton содержит 1 кнопку формы Windows с именем button1, могу ли я просто предоставить основной обработчик события Click дляbutton1?

public EventHandler Click {
  get { return button1.Click; }
  set { button1.Click = value; }
}

Этот код не работает!Но это, по сути, то, что я пытаюсь сделать.

РЕДАКТИРОВАТЬ: Я вижу, я был награжден Популярный вопрос за этот пост, но он по-прежнему находится на -1.Если этот вопрос поможет вам найти ответ, пожалуйста, проголосуйте.

Ответы [ 2 ]

3 голосов
/ 28 сентября 2011

Если это происходит от стандартного элемента управления Button, как это:

using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsControlLibrary1
{
   public class RedButton : Button
   {
       public RedButton()
       {
           base.BackColor = Color.Red;
       }
   }
}

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

3 голосов
/ 28 сентября 2011

Button.Click - это событие, а не свойство.Вы не можете получить и установить его значение, потому что это не свойство;вы можете только добавлять и удалять обработчики, потому что это событие, и именно так работают события.

Но вы можете написать свое собственное событие с помощью пользовательских обработчиков add и remove, которые переносят Button:

public event EventHandler Click {
    add { button1.Click += value; }
    remove { button1.Click -= value; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...