Frage

Alles, was mit einer langen Schnur einfach stellt eine unbrauchbare Ansicht mit einer Scrollbar ..

Ist die Breite auf Kollektionseditor vom-Design festgelegt und kann ein Splitter zu dieser fantastischen Präsentation eingeführt werden?

War es hilfreich?

Lösung

Ich habe keine Möglichkeit, dies zu tun mit regelmäßigen PropertyGrid gesehen, aber wenn Sie nicht zahlen nichts dagegen, Visualhint haben eine viel entwickelteren Angebot hier -. vielleicht Versuch es


Dies macht die Arbeit mit Reflexion; mit Vorsicht verwenden ...

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 });
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top