vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

Fragen & Antworten rund um sev-Komponenten
ListIndex -1 im EditComboClick 
Autor: Reinski
Datum: 13.03.05 17:19

Hallo zusammen,

hab eine kleine 'Unschärfe' beim DataGrid2 (Version 2.0.22) entdeckt.
Dabei wird das EditComboClick-Event unter gewissen Voraussetzungen mit ungültigen Informationen aufgerufen (ListIndex = -1, Text leer), obwohl die ComboList Einträge erhält und davon eigentlich der erste geliefert werden müsste.

Zum Nachvollziehen hab ich ein kleines Beispielprojekt aufgesetzt:

Ein Form mit
sevDataGrid2 (sevGrid1),
CommandButton (Command1; Caption="DoEdit"),
CommandButton (Command2; Caption="Löschen"),
Label (Label1)
und folgendem Code:
Option Explicit
 
Private Sub Command1_Click()
    'Starte das Editieren in der ComboList-Spalte
    sevGrid1.DoEdit 1, "ComboList"
End Sub
 
Private Sub Command2_Click()
    'Lösche die Selektion/den Zelleintrag in der ComboList-Spalte
    sevGrid1.Text(1, "ComboList") = ""
End Sub
 
Private Sub Form_Load()
    Label1.Caption = ""
    With sevGrid1
        'Grid Einstellungen vornehmen
        .DataMode = Mode_List
        .AllowEdit = True
        .ColumnAdd "Text", "Text"
        .ColumnAdd "ComboList", "ComboList", , , , TYPE_COMBOLIST
        'Grid füllen
        .AddItem "Eine Zeile" & vbTab & "Erster Eintrag"
    End With
End Sub
 
Private Sub sevGrid1_EditComboClick(ByVal ListIndex As Long, ByVal sText As _
  String)
    Label1.Caption = "ListIndex: " & ListIndex & ", Text: '" & sText & "'"
End Sub
 
Private Sub sevGrid1_FillComboBox(ByVal nRow As Long, ByVal nCol As Long, _
  oComboBox As sevDataGrid2.EditComboBox)
    If nCol = sevGrid1.Columns("ComboList").Index Then
        'Einträge in ComboList aufnehmen
        With oComboBox
            .AddItem "Erster Eintrag"
            .AddItem "Zweiter Eintrag"
            .AddItem "Dritter Eintrag"
        End With
    End If
End Sub
Wird das Projekt ausgeführt, sieht man erstmal eine Zeile im Grid mit gewähltem Eintrag in der zweiten Spalte.
Diesen kann man wie gewohnt ändern, in dem man einen Doppelklick darauf macht und in der ComboBox einen Eintrag auswählt. Dabei zeigt das Label immer den gewählten Eintrag an.

Mein Problem lässt sich nun mit folgenden Schritten reproduzieren:
1. Klick auf Löschen-Button
--> Kein Eintrag mehr gewählt
2. Klick auf DoEdit-Button
--> Edit Modus wird per Code gestartet (ginge zwar auch per Mausdoppelklick, aber so ist sicher gestellt, dass man nicht zuviel rumklickt und evtl. schon einen Eintrag auswählt)
3. CurorRunter-Taste drücken
--> Eigentlich sollte jetzt der erste Eintrag in der ComboList gewählt werden, doch zuerst erfolgt die Auswähl von ListIndex -1 (im Label zu sehen) !
Erst danach mit weiteren CursorRunter-Drücken werden die ComboList-Einträge korrekt durchlaufen.

Effektiv heisst das, das man für das Auswählen des obersten Eintrags in diesem Fall zweimal CursorRunter drücken muss...
Ist dieses Verhalten erwünscht, oder könnte man das vielleicht in der nächsten Grid-Version korrigieren?
Gruß!

Reinski

Immer noch auf der Suche nach dem "Tu's trotzdem"-Button...

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ListIndex -1 im EditComboClick687Reinski13.03.05 17:19
Re: ListIndex -1 im EditComboClick360ModeratorDieter14.03.05 16:13
Re: ListIndex -1 im EditComboClick391Reinski14.03.05 17:29
Re: ListIndex -1 im EditComboClick478Reinski14.03.05 17:56
Re: ListIndex -1 im EditComboClick572ModeratorDieter15.03.05 00:41
Spitze 415Reinski15.03.05 09:40

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-2025 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