Как заставить производное текстовое поле и текстовое поле toolstriptextbox использовать один и тот же код в Vs2010 - PullRequest
1 голос
/ 25 мая 2011

Я создал производный элемент управления текстовым полем WinForm, который знает, как предоставить подсказку (те слова, которые выделены серым цветом, например «Пароль» или «Введите поиск здесь»), а также позволяет отключить звуковой сигнал при вводе.,

У меня есть два открытых свойства BeepOnEnter и HintText, один метод - ResetHint, а затем переопределяет свойство Text, событие OnGotFocus и событие OnKeyPress.

Этот код работает нормально, пока у меня нетнеобходимость в текстовом поле на панели инструментов, также известной как ToolStripTextBox.

Я хотел бы использовать один и тот же код как для TextBox, так и для ToolStripTextBox.Есть ли способ минимизировать / уменьшить избыточность?Я определенно нуждаюсь в коде, который имеет классы, которые являются производными от TextBox и ToolStripTextBox, поэтому дизайнер пользовательского интерфейса позволяет мне отбрасывать эти новые элементы управления на форму или панель инструментов, но не могу понять, как это сделать OO-способом.

1 Ответ

1 голос
/ 25 мая 2011

ToolStripTextBox является производным от ToolStripControlHost, а TextBox - производным от TextBoxBase, и поскольку множественное наследование не допускается, лучше всего будет создать третий служебный класс и поместить в него все подобные функции.Затем вы можете использовать экземпляр этого класса в своих производных элементах управления, чтобы получить необходимые вам общие функции.

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