Rubrik: | VB-Versionen: VB4, VB5, VB6 | 01.03.03 |
FullRowSelect für das MSFlexGrid Dieses Beispiel zeigt, wie sich die fehlende FullRowSelect-Eigenschaft für das MSFlexGrid-Control nachbauen lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 1.552 |
http://www.tools4vb.de/ | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt |
Das FlexGrid-Control ist wie der Name schon sagt, sehr flexible, was die Darstellung der Daten im Grid betrifft. Leider stört es aber oftmals, dass trotz festgelegter Eigenschaft SelectionMode = 1 - flexSelectionByRow nie die gesamte Datenzeile markiert wird. Die erste Spalte nach der fixen Spalte wird trotz Selektion immer "normal" angezeigt:
Störend: Die erste Zelle wird immer normal dargestellt
Dieses Verhalten lässt sich folgendermaßen umgehen: Setzt man die Eigenschaft FocusRect = 0 - flexFocusNone wird immer die gesamte Zeile selektiert - bis auf evtl. vorhandene FixedCol-Spalten.
Was aber wenn auch die linke grauen festen Spalten hervorgehoben werden sollen?`
Ganz einfach Immer wenn sich die Row-Eigenschaft ändert, setzt man den Fokus auf die erste fixe Spalte, also Col = 0. Und das war's dann auch schon
Private Sub Form_Load() With MSFlexGrid1 ' Kein Focus-Rechteck anzeigen .FocusRect = flexFocusNone ' Von anfang an gesamte Zeile selektieren .Col = 0 .ColSel = .Cols - 1 End With End Sub
Private Sub MSFlexGrid1_RowColChange() ' Immer FullRowSelect-Modus MSFlexGrid1.Col=0 End Sub
Besser: Echter FullRowSelect-Modus