Tritt ein, bevor der Strukturknoten reduziert wird.

C# | Visual Basic | Visual C++ |
public event OnBeforeCollapse BeforeCollapse
Public Event BeforeCollapse As OnBeforeCollapse
public: event OnBeforeCollapse^ BeforeCollapse { void add (OnBeforeCollapse^ value); void remove (OnBeforeCollapse^ value); }

Dieses Ereignis tritt immer ein, wenn sich die Strukturknoten
vom geöffneten zum geschlossenen Zustand ändert. Der Parameter
BeforeCollapseEventArgs enthält eine
Membervariable Cancel, welche, wenn sie
auf true gesetzt wird, das Schließen der Strukturknoten
verhindert.
Das Öffnen und Schließen eines Strukturknotens kann auch mittels Tastatur bedient werden. Verwenden Sie die Tastenkombination ALT und die Cursortaste nach rechts zum Öffnen bzw. die Cursortaste nach links zum Schließen des Strukturknotens. Wenn Sie zusätzlich die Umschalttaste gedrückt halten, werden alle untergeordneten Strukturknoten geöffnet bzw. geschlossen. Das gilt auch, wenn Sie bei gedrückter Umschalttaste mit der linken Maustaste den Strukturknoten öffnen oder schließen.
Das Öffnen und Schließen eines Strukturknotens kann auch mittels Tastatur bedient werden. Verwenden Sie die Tastenkombination ALT und die Cursortaste nach rechts zum Öffnen bzw. die Cursortaste nach links zum Schließen des Strukturknotens. Wenn Sie zusätzlich die Umschalttaste gedrückt halten, werden alle untergeordneten Strukturknoten geöffnet bzw. geschlossen. Das gilt auch, wenn Sie bei gedrückter Umschalttaste mit der linken Maustaste den Strukturknoten öffnen oder schließen.


OnBeforeCollapse evt; // Event Random rnd=new Random(); // Zufallszahlengenerator int y = 1; evt=new OnBeforeCollapse(grid_BeforeCollapse); // Event instanz grid.BeforeCollapse += evt; // ..für's Grid grid.AddCols(1); // eine Zeile grid.Cols[0].Width = 200; // Spaltenbreite grid.AddRows(10); // starten mit 10 Zeilen grid.Rows[0].Fixed = true; // Spaltenkopf grid.Cols[0].Outline = true; // Strukturelemente (+/-) anzeigen while(y<grid.Rows.Count){ // bis zur letzten Zeile GridRow row = grid.Rows[y]; // ..Zeile.. if(rnd.Next(12) > 4+row.Outline.Level) // ..per Zufall: ... row.Outline.AddChilds(rnd.Next(4)+1); // ....neue "Childs" anhängen row[0].Value = "Zeile "+row.Row; // ..Zeilennummer anzeigen y++; // ..nächste Zeile } private void grid_BeforeCollapse(object sender, BeforeCollapseEventArgs e) { Console.Write("Zeile="+e.Row+", Spalte="+e.Column); // Zeile/Spalte ausgeben if(e.Row%4==0){ // jede vierte Zeile e.Cancel = true; // ..abbrechen Console.WriteLine("--> Schließen Abbruch"); // ..Info ausgeben } else // ..untergeordnete.. Console.WriteLine("--> Schließen ok"); // ....Knoten ok }