VisualBasic6-Problem mit GotFocus/SetFocus

Dieses Thema im Forum "Programmieren" wurde erstellt von Blümschen, 27. Mai 2005.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Blümschen

    Blümschen Byte

    Registriert seit:
    23. April 2004
    Beiträge:
    93
    Liebe PC-Freaks,

    ich muß mich auf eine VB-Prüfung kurzfristig vorbereiten und kann den Fehler nicht finden,weshalb der GotFocus nicht in der ersten Textbox Text1(0) gesetzt wird.

    Das Programm besteht aus 2 Textboxen (Text1(0) , Text1(1) (kopiert) ).Nach Eingabe einer Anfangs-und einer Endzahl in diese Boxen,soll die Zahlenreihe in einer ListBox (List1) ausgegeben werden.

    Gestartet wird mit Command1.

    Alles funktioniert ,nur der Focus wird nicht gesetzt.

    Außerdem müsste ich wissen,wie ein SetFocus (blinkender Balken) in die Textbox gesetzt werden kann.

    Vielen Dank für die Mühe:


    Option Explicit
    Dim n As Integer, AZ As Integer, EZ As Integer

    Private Sub Command1_Click()
    AZ = Text1(0)
    EZ = Me.Text1(1)



    Me.List1.Clear
    For n = AZ To EZ
    List1.AddItem n
    Next n

    End Sub


    Private Sub Command2_Click()
    End
    End Sub

    Private Sub Form_Load()

    n = 0
    AZ = 0
    EZ = 0


    For n = 0 To 1
    Text1(n) = 0
    Next n





    End Sub





    Private Sub Text1_LostFocus(Index As Integer)
    If Not IsNumeric(Text1(Index)) Then
    MsgBox "nur numerische Eingabe möglich !"

    End If


    End Sub

    Private Sub Text1_GotFocus(Index As Integer)
    Me.Text1(Index).SelStart = 0
    Me.Text1(Index).SelLength = Len(Me.Text1(Index))
    End Sub


    :heul:
     
  2. Beatcounter

    Beatcounter Guest

    Registriert seit:
    25. Januar 2003
    Beiträge:
    313
    geht es nicht mit
    Code:
    text1.setfocus
    ?
     
  3. Angel-HRO

    Angel-HRO Megabyte

    Registriert seit:
    31. August 2000
    Beiträge:
    2.524
    Wenn du Steuerelemente kopierst, dann fragt er dich,ob du ein Steuerelementefeld erstellen willst. Dies immer verneinen!

    Am besten du löscht die beiden Textboxen und legst einfach 2 neue an (der Code bleibt erhalten, musst ihn nur neu reinkopieren)

    das Ansprechen von Steuerelementefeldern funktioniert wegen den () im Namen meist nicht so recht
     
  4. Beatcounter

    Beatcounter Guest

    Registriert seit:
    25. Januar 2003
    Beiträge:
    313
    würde das nicht so gehen?
    Code:
    Option Explicit
    Dim n, AZ, EZ As Integer
    
    Private Sub Form_Load()
        AZ = 0
        EZ = 0
    End Sub
    
    Private Sub Command1_Click()
        If Not IsNumeric(Text1.Text) Or Not IsNumeric(Text2.Text) Then
            MsgBox "nur numerische Eingabe möglich !"
        Else
            AZ = Text1.Text
            EZ = Text2.Text
        
            List1.Clear
            For n = AZ To EZ
                List1.AddItem n
            Next n
            Text1.SetFocus
        End If
    End Sub
    
    Private Sub Command2_Click()
        End
    End Sub
    oder so?

    Code:
    Option Explicit
    
    Dim n, AZ, EZ As Double
    
    Private Sub Form_Load()
        AZ = 0
        EZ = 0
    End Sub
    
    Private Sub Command1_Click()
        If Not IsNumeric(Text1.Text) Or Not IsNumeric(Text2.Text) Then
            MsgBox "nur numerische Eingabe möglich!"
        Else
            AZ = Text1.Text
            EZ = Text2.Text
            If AZ > EZ Then
                MsgBox "Anfangszahl ist größer als Endzahl!"
            Else
                List1.Clear
                For n = AZ To EZ
                    List1.AddItem n
                Next n
                Text1.SetFocus
            End If
        End If
    End Sub
    
    Private Sub Command2_Click()
        End
    End Sub
    oder so?

    Code:
    Option Explicit
    
    Dim n, AZ, EZ As Double
    
    Private Sub Form_Load()
        AZ = 0
        EZ = 0
    End Sub
    
    Private Sub Command1_Click()
        If Not IsNumeric(Text1.Text) Or Not IsNumeric(Text2.Text) Then
            MsgBox "nur numerische Eingabe möglich!"
        Else
            AZ = Text1.Text
            EZ = Text2.Text
            If AZ > EZ Then
                MsgBox "Anfangszahl ist größer als Endzahl!"
            Else
                List1.Clear
                For n = AZ To EZ
                    List1.AddItem n
                Next n
                Text1.SetFocus
                Text1.Text = ""
                Text2.Text = ""
            End If
        End If
    End Sub
    
    Private Sub Command2_Click()
        End
    End Sub
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen