Я работаю над классом, производным от класса UserControl
. Этот класс добавляет атрибуты [Browsable(false)]
и [EditorBrowsable(EditorBrowsableState.Never)]
к событию TextChanged
, которое унаследовано от класса Control
.
Мой новый элемент управления сравним с TabPage
; он используется внутри другого класса, сравнимого с TabControl
. Это важно потому, что это означает, что мне нужен пользователь элемента управления, чтобы иметь доступ к этому событию. В отражателе .NET мы видим, что элемент управления TabPage
(который наследует от Panel
, который также добавляет эти два атрибута) «переопределяет» эти два атрибута с помощью следующего кода:
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public event EventHandler TextChanged;
Я скопировал это в свой проект, и насколько я могу судить, он работает правильно, но компилятор выдает мне предупреждение: «System.Windows.Forms.Frameset.FunctionPanel.TextChanged« скрывает унаследованный член »System.Windows .Forms.UserControl.TextChanged '. Используйте ключевое слово new, если было запланировано скрытие. " Я не хочу скрывать старое событие TextChanged; Я просто хочу удалить атрибут Browsable(false)
. В то время как скрытие старого события, кажется, делает работу на поверхности, это кажется уродливым и окольным способом сделать это. Есть ли способ сделать это, не скрывая старого события? А если нет, то есть ли способ заставить компилятор перестать давать мне предупреждение за это?
Заранее спасибо,
Brandon