Это невозможно без взлома сетки свойств.Вот код, который может изменить ширину столбца метки:
public static void SetLabelColumnWidth(PropertyGrid grid, int width)
{
if (grid == null)
throw new ArgumentNullException("grid");
// get the grid view
Control view = (Control)grid.GetType().GetField("gridView", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(grid);
// set label width
FieldInfo fi = view.GetType().GetField("labelWidth", BindingFlags.Instance | BindingFlags.NonPublic);
fi.SetValue(view, width);
// refresh
view.Invalidate();
}
public static void ResetLabelColumnWidth(PropertyGrid grid)
{
SetLabelColumnWidth(grid, -1);
}
Используйте его так же, чтобы удалить столбец метки:
SetLabelColumnWidth(propertyGrid1, 0);
Функция сброса восстанавливает столбец метки.
Конечно, это взлом, поэтому он может не сработать в будущем.Также есть проблемы:
- Курсор v-сплиттера отображается, когда мышь перемещается в левую сторону сетки, и пользователь может выбрать его и сбросить столбец метки, если щелкнет.
- Некоторые действия сетки могут также восстановить столбец метки (например, с помощью панели инструментов сетки свойств).
Надеюсь, это поможет!