vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen & Antworten rund um sev-Komponenten
sevDataGrid3 und ListItem bei CellClick und DoubleClick 
Autor: Woellmi
Datum: 11.10.16 22:17

Hallo Dieter,

ich verwende das sevDataGrid3 im ListModus und verwende
die Ereignisse "_CellDblClick" und "_CellClick" um die Zeilen
im Grid auszuwerten und ggf. einzufärben.
Dazu habe ich für die Form ein ListItem-Object erstellt,
welches ich für beide Ereignisse verwende.

Prizipiell funktioniert alles ganz gut, bis auf den Fall, dass
intensieves "Klicken" dazu führt, dass die Wertübernahme aus den
ListItems irgendwann (undefiniert) nicht mehr klappt.
In der IDE führt dies dazu, dass fehlerhafte Werte übernommen werden, obwohl
die Indezierung über "nRow" und "nCol" stimmt. Als EXE resultiert irgendwann ein
"Speicherzugriffs-Fehler".

Ich ging davon aus, dass die Events "Click/DblClick" nacheinander abgearbeitet werden und
somit das gleiche ListItem-Object genutzt werden kann.
=> geht aber nicht
=> es geht erst, wenn ich zwei separate ListItem-Objeckte für "Click" eines
und für "DblClick" eines verwende.
Habe ich etwas verkehrt gedacht, oder liegt dies am sevDataGrid3?

Hier ein Auszug meines Programmes mit einem gemeinsamen ListItem-Object:

Deklarationsteil der Form:
Private sevEditItem As sevDataGrid3.ListItem
Jetzt gehe ich wie folgt vor:
=> RechtsKlick der Maus bewirkt die Zeilenprüfung mit ggf. resultierender Einfärbung
=> LinksKlick der Maus Einfärbung aufheben

Private Sub grdStations_CellClick(ByVal nRow As Long, ByVal nCOL As Long, ByVal _
  Button As Integer, ByVal Shift As Integer)
 Set sevEditItem = grdStations.ListItems(nRow)
 If Button = 2 Then
  'RechtsKlick => Diff-Chk in Zeile ggf. Einfärben
  'Bei gefundenen Diffs Zeilenauswahl aufheben
  If f_bCheckForDiffGrdValues(grdStations, sevClearItem) Then
   grdStations.SelectionHide
  End If
 Else
  'LinksKlick => Reset Einfärbung + Zeilenauswahl aktivieren
  subResetRowCellColors grdStations, sevEditItem
  grdStations.SelectionShow
 End If     
End Sub
=>Doppelklick aktiviert das Editieren der gewählten Zelle
=>Meine Spalten beinhalten BOOL oder NumWerte
=>Daher platziere ich ein "sevEin2" über der Zelle
=>Je nach Typ wird der Eingabemoddus des "sevEin2" eingestellt "Text" oder "CboLst"
=>Nach Eingabe wird der TxTWert in DataGrid Zelle übernommen
Erfolgt über "LostFocus" Event der TextBox
Private Sub grdStations_CellDblClick(ByVal nRow As Long, ByVal nCOL As Long)
 Set sevEditItem = grdStations.ListItems(nRow)
 If f_nGetParTyp = TYP_BOOL Then
    sevEditTxt.Style = rsDropDownList
 Else
    sevEditTxt.Style = rsTextBox
 End If
 '..    
 sub_MoveSevTBoxInSevGrid3 grdStations, sevEditTxt, sevEditItem, nRow, nCOL, _
   2020, 126
 sub_TakeGridValue grdStations, sevEditTxt, sevEditItem, nRow, nCOL
 '..   
End Sub
Meine Frage ist also kurz gesagt:
Darf ich ein und das selbe "ListItem" Object für beide Ereignisse nutzen?
Ist es "normal" wenn in diesem Fall eine Ausnahme resultiert?
=>Ausnahme erfolgt sporadisch, es gibt keine eindeutige Klickfolge
=> verwende ich separate ListItem-Objecte geht alles prima.

Danke schon jetzt

Tschaui
Woellmi

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
sevDataGrid3 und ListItem bei CellClick und DoubleClick1.520Woellmi11.10.16 22:17
Re: sevDataGrid3 und ListItem bei CellClick und DoubleClick720ModeratorDieter12.10.16 06:58
Re: sevDataGrid3 und ListItem bei CellClick und DoubleClick690Woellmi12.10.16 08:52

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel