#c# #propertygrid
#c# #propertygrid
Вопрос:
Я работаю над панелью PropertyGrid и пытаюсь удалить или скрыть кнопку «Страницы свойств», поскольку для меня это бесполезно, я попытался установить ToolBarVisible в значение false, но это скрывает все три кнопки на панели инструментов. Вот как выглядит моя сетка свойств:
Комментарии:
1.
ToolbarVisible
скрывает это и два других ; этого достаточно?2. @MarcGravell Мне нужны два других, чтобы отсортировать свойства по категориям или в алфавитном порядке.
3. к, в таком случае: я не знаю простого способа сделать это, извините; может быть, кто-то другой знает…
4. Там ничего не задокументировано. Но вы можете взломать ее, например:
var bs = propertyGrid1.Controls.OfType<ToolStrip>().FirstOrDefault().Items; bs[bs.Count - 1].Visible = false; bs[bs.Count - 2].Visible = false;
для справки это код, который ее создает (кажется, он всегда в конце): referencesource.microsoft.com/#system.windows.forms/winforms /…5. Спасибо @SimonMourier, я попробую и вернусь к вам.
Ответ №1:
Официального способа нет, но вы можете взломать сетку свойств, получив доступ к ее внутренним элементам управления.
Вот пример кода, который пытается сделать это максимально изящно. Вы также можете проверить, является ли текст последнего элемента управления «Страницами свойств», но он может не работать с локализованными версиями.
var buttons = propertyGrid1.Controls.OfType<ToolStrip>().FirstOrDefault()?.Items;
if (buttons != null amp;amp;
buttons.Count >= 2 amp;amp;
buttons[buttons.Count - 1] is ToolStripButton amp;amp; // could test Text...
buttons[buttons.Count - 2] is ToolStripSeparator)
{
buttons[buttons.Count - 1].Visible = false;
buttons[buttons.Count - 2].Visible = false;
}
Используйте на свой страх и риск.