Скрытие нежелательных свойств в пользовательских элементах управления

Это способ скрыть свойства в производных элементах управления?

public class NewButton : Button

 [Browsable ( false )] public new ContentAlignment TextAlign { get; set; } 

Кроме того, это скрывает свойство в окне «Свойства» в конструкторе, но как я могу скрыть свойство в коде?

Из кода, ближайшего вы можете сделать это, чтобы скрыть его, и, возможно, сделать это больно, чтобы позвонить прямо – обратите внимание, что даже когда скрытый он может быть вызван, и ни одно из этого не будет работать после трансляции:

 // about the closest you can do, but not really an answer [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("just cast me to avoid all this hiding...", true)] public new ContentAlignment TextAlign { get; set; } 

Лично я бы не стал беспокоиться. Это не надежный (просто бросок).

Вы можете использовать [EditorBrowsable] , как [EditorBrowsable] здесь .

 [EditorBrowsable(EditorBrowsableState.Never)] public bool HideMeInIntellisense { // ... 

Из документации:

… движок IntelliSense в Visual Studio использует этот атрибут, чтобы определить, показывать ли свойство или метод.

Однако пользователи могут переопределить это в настройках VS. ReSharper также имеет параметр, который контролирует, соблюдается ли этот атрибут в IntelliSense.

Из любопытства, почему вы хотите что-то скрывать от пользователей? Просто потому, что элемент скрыт описанным выше способом, это не означает, что вы не можете использовать его в коде и скомпилировать его успешно. Это просто препятствует открытости члена.

Нет, вы можете удалить их из конструктора (как показано), но вы не можете скрыть их код формы, поскольку это нарушит принцип подстановки. Здесь задавали и много раз отвечали, см., Например, этот вопрос .

Возможно, то, что вы хотите сделать, происходит от ContainerControl или UserControl, добавляет кнопку к этому элементу управления и просто выставляет те части интерфейса Button, которые вы хотите сохранить.

Почему бы вам не сделать это частным? Это гарантирует, что предки этого не видят. Изменить: В этом случае вам нужно наследовать новый class из базы и использовать свой новый class, который теперь скрывает свойство.

 public class MyTextBox: TextBox { ... private new ContentAlignment TextAlign { get { return base.ContentAlignment; } set { base.ContentAlignment = value; } } } 
  • Проблема с PictureBox
  • Получение операции с поперечными streamами недействительно
  • Изменение размера windows без полей в нижнем правом углу
  • Как нарисовать пользовательскую кнопку в окне заголовка windows с помощью Windows Forms?
  • центр MessageBox в родительской форме
  • Как дублировать элементы управления .NET в форме?
  • Получение местоположения элемента управления, относящегося ко всему экрану?
  • Как я могу рассматривать круг как элемент управления после его рисования? - Перемещение и выбор фигур
  • Как установить / изменить / удалить стиль фокусировки на кнопке в C #?
  • Как добавить событие в UserControl в C #?
  • Создайте программу установки для приложений C # и включите установщик .NET Framework в настройку
  • Interesting Posts

    Как стартовая командная команда выполняет программное обеспечение, вызывая только его имя?

    Существуют ли практические применения для динамического каста для указателя пустоты?

    Как измерить время запроса и ответа одновременно с помощью cURL?

    Ошибка кодового знака: идентификатор «iPhone Developer» не соответствует какой-либо действительной паре сертификата / закрытого ключа в ключевом ключе по умолчанию

    Является ли это действительной Java?

    почему f помещается после значений float?

    HTTPS GET (SSL) с Android и самозаверяющим сертификатом сервера

    Отключить возможность вытащить вкладку Chrome

    Проверка HTML5 перед отправкой ajax

    Создание презентаций PowerPoint программно

    Когда следует использовать Q_OBJECT?

    Какова цель этого 4-контактного кабеля с 3 проводами, которые поставляются со старым DVD-приводом IDE?

    Фиксированное или постоянное местоположение монтирования для жесткого диска USB

    Подсчитывать и выделять ключевые слова в фразах

    как создать анимированный gif в .net

    Давайте будем гением компьютера.