vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 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
sevGrid: StartEditMode & .DoEdit 
Autor: Doom
Datum: 16.08.10 12:09

Ich habe folgendes Problem:
Ich habe im StartEditMode-Event eine Prüfung eingebaut die überprüft ob die nächste Zeile editiert werden darf (is für die TAB-Taste, für den Mausklick nutze ich CellClick).
Bin ich mit der TAB-Taste am ende der Zeile angekommen springt das 'Cursor-Feld' auch in die richtige Zeile und Zelle. Tippe ich dann aber was ein, springt die Eingabe nach verlassen der Zelle eine Spalte höher als eingetragen.

Ich denke das es dadran liegt, das ich .DoEdit im StartEditMode aufrufe und es dadurch zum nochmaligen aufruf von StartEditMode kommt während der erste 'durchlauf' von StartEditMode noch nicht beendet ist und nach dem zweiten StartEditMode wieder ins erste StartEditMode zurückläuft und dann die Variablen 'nRow' und 'nCol' falsch gesetzt werden. oder so

frage also: wie mache ich es, das die Zeilen in denen keine Eingabe erfolgten soll trotz AutoEdit übersprungen werden. Außerdem hab ich das selbe Problem im Spaltenbereich. Ich habe in dem Grid Spalten (siehe bild, kleine trennspalten) die auch vom TAB übergangen werden sollen. Da funktioniert es allerdings noch weniger. .DoEdit wird gänzlich ignoriert, weil der .IsEditMode nicht gleich MODE_ADDNEW ist denke ich aber auch mit SendKeys "{TAB}" wird die Trennspalte beim druck auf TAB mit angewählt.

Meine Grid-Einstellungen:
.DataMode = Mode_List
.AutoEdit = True
...

Mein Grid sieht so aus (Essensbestellplan für Menü A,B,C):


Der Sprung in die nächste spalte (Monat wird ignoriert [sieht also richtig aus])


So sieht der Fehler aus (Eingaben sind hochgesprungen und Curser ist in der Vertikalen Trennspalte)


Code:
Private Sub grd_Bestellungen_StartEditMode(ByVal nRow As Long, ByVal nCol As _
  Long, sText As String, bCancel As Boolean)
 
    With grd_Bestellungen
        If .Columns(nCol).KEY = "Woche" Then
            'bCancel = True
 
            If .ListItems(nRow).KEY = "" Then
                .DoEdit nRow + 1, nCol + 1
            Else
                .DoEdit nRow, nCol + 1
            End If
 
        End If
    End With
 
    If grd_Bestellungen.Columns(nCol).KEY = "t1" Then 'Trennlinie1
        'SendKeys "{TAB}"
        'grd_Bestellungen.DoEdit nRow, "A3"
    End If
 
End Sub
Private Sub grd_Bestellungen_AfterCellEdit(nRow As Long, nCol As Long, ByVal _
  sText As String)
 
    HighlightWorked nRow, nCol
 
End Sub
 
Private Sub HighlightWorked(nRow As Long, nCol As Long)
Dim lf_Col As Integer
 
    With grd_Bestellungen
        .Text(nRow, "changed") = 1
        If .ListItems(nRow).BackColor <> gc_Color_RowWasEdit Then _
        .ListItems(nRow).BackColor = gc_Color_RowWasEdit
        .ListItems(nRow).CellItalic("Woche") = True
        .ListItems(nRow).CellBackColor(nCol) = gc_Color_CellWasEdit
    End With
 
    mf_Changes = True
 
End Sub

Real programmer do not comment their code;
what?s hard to write should be hard to read

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
sevGrid: StartEditMode & .DoEdit1.107Doom16.08.10 12:09
Re: sevGrid: StartEditMode & .DoEdit664ModeratorDieter16.08.10 22:40
Re: sevGrid: StartEditMode & .DoEdit794Doom17.08.10 15:33

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