Изменение ширины редактора / представления левой части PropertyGrid - PullRequest
1 голос
/ 02 июня 2009

Все, что имеет длинную строку, просто вводит непригодный вид с полосой прокрутки.

Исправлена ​​ли ширина редактора коллекций в дизайне и можно ли добавить сплиттер в эту удивительную презентацию?

1 Ответ

5 голосов
/ 02 июня 2009

Я не видел способа сделать это с обычным PropertyGrid, но если вы не возражаете платить, у Visualhint есть гораздо более развитое предложение здесь - возможно, попробуйте его.


Это делает работу, используя отражение; используйте с осторожностью ...

using System;
using System.Reflection;
using System.Windows.Forms;
class Program {
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Form form = new Form();
        // this bar will control the splitter
        ScrollBar sb = new HScrollBar {
            Minimum = 10, Maximum = 200,
            Dock = DockStyle.Bottom
        };
        // the grid we want to control
        PropertyGrid grid = new PropertyGrid {
            SelectedObject = form, Dock = DockStyle.Fill
        };
        // add to the form
        form.Controls.Add(grid);
        form.Controls.Add(sb);
        // event to update the grid
        sb.ValueChanged += delegate {
            MoveSplitterTo(grid, sb.Value);
        };
        Application.Run(form);
    }
    static void MoveSplitterTo(PropertyGrid grid, int x) {
        // HEALTH WARNING: reflection can be brittle...
        FieldInfo field = typeof(PropertyGrid)
            .GetField("gridView",
                BindingFlags.NonPublic | BindingFlags.Instance);
        field.FieldType
            .GetMethod("MoveSplitterTo", 
                BindingFlags.NonPublic | BindingFlags.Instance)
            .Invoke(field.GetValue(grid), new object[] { x });
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...