2009-06-02 6 views
1

Alles, was mit einer langen Schnur einfach mit einem Scrollbar eine unbrauchbare Sicht führt ..Ändern der Breite von Property linken Seite Kollektionseditor/Ansicht

Ist die Breite auf Kollektionseditor vom-Design festgelegt und kann ein Splitter sein in diese tolle Präsentation eingeführt?

+0

bearbeiten Antwort reflexionsbasierte Lösung zeigen –

+0

Wird die Antwort akzeptieren, wie Sie wirklich mit Prop-Grid beschäftigt und aktiv zu sein scheinen, und in der Regel winforms Sachen :) Danke .. Off topic, Jetzt fange ich an, Albträume zu haben, wenn ich mit einer ähnlichen Methode nach dem Collection-View-Eigenschaftsraster von einem anderen Property-Grid hänge oder suche. Prost. –

+0

Für Informationen, was Sie beschreiben, ist die modale UITypeEditor wie CollectionEditor (nur für den Fall, dass die Suche hilft ...) –

Antwort

5

Ich habe keinen Weg gesehen, dies mit regelmäßigen PropertyGrid zu tun, aber wenn Sie nichts dagegen haben, zu zahlen, haben Visualhint ein viel mehr entwickeltes Angebot here - vielleicht ausprobieren.


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 }); 
    } 
} 
+0

Danke Marc .. aber ich suche wirklich eine mit 250MB Rahmen ausgeliefert, um die Fähigkeit zu haben. –

Verwandte Themen