VisualBasic Tabellenzeilen in einem FlexGrid markieren

Krik

Fleet Admiral
Registriert
Juni 2005
Beiträge
15.045
Moin

Ich verwende VB 2005 und habe mir diese Code zusammengebastelt:
Code:
Private Sub MSFlexGrid1_Click()
    ' Klick auf die Tabelle markiert eine Reihe zum löschen oder umgekehrt
    MSFlexGrid1.Redraw = False
    MSFlexGrid1.Col = 4
    
    If MSFlexGrid1.PictureType = flexPictureMonochrome Then
        MSFlexGrid1.Col = 4
        MSFlexGrid1.PictureType = flexPictureColor
        Set MSFlexGrid1.CellPicture = LoadPicture(App.Path & "\markiert.bmp")
        MSFlexGrid1.Text = ""
        
        MSFlexGrid1.Col = 0
        Label1.Caption = "Artikel " & MSFlexGrid1.Text & " zum Löschen markiert."
    Else
        MSFlexGrid1.Col = 4
        MSFlexGrid1.PictureType = flexPictureMonochrome
        Set MSFlexGrid1.CellPicture = LoadPicture(App.Path & "\nicht_markiert.bmp")
        MSFlexGrid1.Text = ""
        
        MSFlexGrid1.Col = 0
        Label1.Caption = "Artikel " & MSFlexGrid1.Text & " nicht mehr zum Löschen markiert."
    End If
    
    MSFlexGrid1.Redraw = True
    MSFlexGrid1.Refresh
End Sub

Der Code macht folgendes:
Ich klicke in eine Zeile des Flexgrids (MSFlexGrid1), daraufhin wird diese Prozedur aufgerufen. Dieser Klick soll in der 4. Spalte ein kleines Häkchen anzeigen, um mitzuteilen, dass diese Zeile markiert wurde. Ein weiterer Klick soll das Häcken und damit die Markierung wieder aufheben.
Um zu überprüfen, ob eine Zeile markiert wurde, zweckemfremde ich die Eigenschaft PictureType der Zelle in der 4. Spalte. (flexPictureMonochrome für "nicht markiert", flexPictureColor für "markiert")

Der Fehler ist nun folgender:
Ich klicke auf die Zeile und das Häkchen wird angezeigt. Ok, ich klicke noch mal drauf und das Häkchen verschwindet. Auch ok.
Jetzt klicke ich ich wieder auf eine Zeile, damit das Häkchen kommt. Danach klicke ich auf die unmarkierte Zeile darunter und er sagt mir, dass er die Markierung der unmarkierten Zeile aufgehoben hat.

Warum? Ich renne jetzt seit bestimmt zwei Stunden diesem Fehler hinterher, aber ich weiß nicht, wodurch er zustande kommt.

Gruß, Laurin


Edit: Hab es gerade selber hinbekommen. Der Fehler bestand darin, dass PictureType eine Eigenschaft des FlexGrids und nicht einer einzelnen Zelle ist. *Kopf-vs-Tisch*
 
Zuletzt bearbeitet:
Zurück
Oben