VB Konsolenanwendung, erste Eingabe verhält sich anders

Dieser Thread ist Teil einer Diskussion zu einem Artikel:  Zum News-Artikel gehen

Fritz50

Stammgast
Hallo zusammen
Ich schon wieder. Beim Starten der Programms möchte ich eine Wahl treffen oder einfach ein Zeichen eingegeben. Das Zeichen soll gleich interpretiert werden ohne Enter. Dann kommen die nächsten Schritte und vielleicht auch eine Wiederholung eines Bereichs (Loop) mit neuer Eingabe. Nun beobachte ich in meinem Beispielcode, dass ich im ersten Durchgang 2x Enter eingeben werden muss um weiterzukommen. Das ist unschön und müsste gelöst werden können. Hier ist der Code stark reduziert und statt einer Abbruchschlaufe eine For-Schlaufe enthalten. Das Verhalten ist aber gleich.

Code:
Module Module1

    Sub Main()
        Dim chr As Char
        Dim cki As ConsoleKeyInfo
        'Prevent example from ending if CTL+C is pressed.
        Console.TreatControlCAsInput = True

        Console.WriteLine("Anfang")
        For i = 1 To 4
            Console.WriteLine("bitte eine Taste drücken")
            cki = Console.ReadKey()                     ' wartet auf Tatsendruck
            chr = (LCase(cki.Key.ToString()))
            Console.WriteLine()                         ' neue Zeile
            Console.WriteLine("weiter mit Enter")
            Console.ReadLine()

        Next
    End Sub

End Module

Findet ihr den Fehler, warum es im ersten Durchgang 2x Enter braucht?

freundliche Grüsse
Fritz
 
Oben