Как сделать события для изменения пользовательских свойств (пользовательский элемент управления) - PullRequest
0 голосов
/ 23 июня 2018

У меня есть пользовательский элемент управления, наследуемый от класса TextBox, и я добавил некоторые свойства, например, у меня есть свойство placeHolderText, и я хочу иметь какое-то событие, которое произойдет, когда я изменю этот текст?
Как и эти события
enter image description here
И есть моя собственность в дизайнерском представлении
enter image description here
Как этого добиться?

1 Ответ

0 голосов
/ 23 июня 2018

Чтобы создать событие в C #, вы можете следовать Стандартным шаблонам событий .NET .

Чтобы создать событие Changed для свойства Something пользовательского элемента управления, выполните следующие действия:

  • Объявить событие SomethingChanged. Это может быть любой делегат, в качестве общего делегата вы можете положиться на EventHandler делегат или EventHandler<T>, в случае, если вы хотите иметь конкретный аргумент события вместо использования EventArgs.
  • Создать защищенный виртуальный OnSomethingChanged метод, который принимает аргументы события и отвечает за его инициирование. Так что вы должны поднять событие в теле, если этот метод.
  • В установщике свойств проверьте, отличается ли это значение от текущего, назначьте его и вызовите OnSomethingChanged, чтобы вызвать событие.
* ** 1023 тысяча двадцать-дв * Пример
public EventHandler PlaceHolderChanged;
string placeholder;
public string PlaceHolder
{
    get { return placeholder; }
    set
    {
        if (placeholder != value)
        {
            placeholder = value;
            OnPlaceHolderChanged(EventArgs.Empty);
        }
    }
}
protected virtual void OnPlaceHolderChanged(EventArgs e)
{
    PlaceHolderChanged?.Invoke(this, e);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...