- SetPropertyGridColumnWidth() simuliert das Verstellen der Spaltenbreite mit der Maus
- das PropertyGrid muss sichtbar sein (visible == true)
- Funktionsaufruf funktioniert nicht im Form-Konstruktor, da dort das PropertyGrid noch nicht sichtbar ist
using System; using System.Windows.Forms; using System.Reflection; // statt im Konstruktor die Breite einzustellen, lieber das Ereignis Shown() // benutzen, da dies erst eintritt, nachdem die gesamte Form schon angezeigt wurde private void Form1_Shown(object sender, EventArgs e) { this.SetPropertyGridColumnWidth(PropertyGrid1, 100); } // Spaltenbreite eines Propertygrids setzen private void SetPropertyGridColumnWidth(PropertyGrid grid, int width) { if (grid != null) { FieldInfo fi = grid.GetType().GetField(@"gridView", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.GetField); if (fi != null) { Control view = fi.GetValue(grid) as Control; if (view != null) { // Funktion "MoveSplitterTo" holen MethodInfo mi = view.GetType().GetMethod(@"MoveSplitterTo", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod); if (mi != null) { // Funktion "MoveSplitterTo" ausführen mi.Invoke(view, new object[] { width }); } } } } }