Tritt ein, bevor der Strukturknoten expandiert wird.

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

Dieses Ereignis tritt immer ein, wenn sich die Strukturknoten
vom geschlossenen zum geöffneten Zustand ändert. Der Parameter
BeforeExpandEventArgs enthält eine
Membervariable Cancel, welche, wenn sie
auf true gesetzt wird, das Öffnen der Strukturknoten
verhindert. Programme, die nur beim ersten Öffnen des
Strukturknotens Daten generieren oder einlesen müssen, können
die Flag-Variable FirstTime als Information nutzen.
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.


OnBeforeExpand evt; // Event Random rnd=new Random(); // Zufallszahlengenerator int y = 1; evt=new OnBeforeExpand(grid_BeforeExpand); // Event instanz grid.BeforeExpand += 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_BeforeExpand(object sender, BeforeExpandEventArgs e) { Console.Write("Zeile="+e.Row+", Spalte="+e.Column); // Zeile/Spalte ausgeben if(e.FirstTime) // erste Mal geöffnet Console.Write(" zum 1.Mal"); // ..Info ausgeben if(e.Row%4==0){ // jede vierte Zeile e.Cancel = true; // ..abbrechen Console.WriteLine("--> Öffnen Abbruch"); // ..Info ausgeben } else // ..untergeordnete.. Console.WriteLine("--> Öffnen ok"); // ....Knoten ok }