Enter

Status
Niet open voor verdere reacties.

BreVDD

Gebruiker
Lid geworden
9 apr 2009
Berichten
104
hallo,

Ik weet dat er al heel wat vragen zijn i.v.m enter, maar ik versta er nergens nix van,

Ik wil wanneer er in een textbox_1 een getal getypt wordt en vervolgens op enter dat er dan iets gebeurt, en dat vervolgens de cursur weer in het de textbox_1 gaat staan. (dus enter vervangt een btn.
alvast bedankt

Brecht
 
Hi mischien dit????

Code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim TopControl As Control = DirectCast(sender, Control)
        For Each c As Control In TopControl.Controls
            If c.HasChildren Then
                Form1_Load(c, e)
            End If
            If TypeOf c Is TextBox Then
                If CType(c, TextBox).Multiline = False Then
                    AddHandler c.KeyPress, AddressOf AnyTextBox_KeyPress
                End If
            End If
        Next


    End Sub
    Private Sub AnyTextBox_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If e.KeyChar = Chr(13) Then
            e.Handled = True

            'Doe iets
            TextBox2.BackColor = Color.AntiqueWhite
            Me.TextBox1.Focus()
        End If
    End Sub
 
Hi mischien dit????

Code:
 Private Sub AnyTextBox_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If e.KeyChar = Chr(13) Then
            e.Handled = True

Die me.textbox1.focus() ==> zorgt dat ervoor dat de cursor in de textbox1 gaat staan; ==> bedankt, dit werkt al =)

Maar om ervoor te zorgen wanner er enter getyp wordt dat er iets gebeurt lukt nog niet, moet ik dat bij het deel zetten van de textbox?
De bovenstaande code, wat moet ik daar aan aanspassen? moet ik die anytextbox vervangen door het textbox dat ik wil hebben? =)
 
Laatst bewerkt:
Jep door middel van focus gaat hij weer naar de textbox

en heb je de form load code er ook ingezet bij mij werkt het goed.
Wat wilje dat er gebeurd
 
Laatst bewerkt:
Jep door middel van focus gaat hij weer naar de textbox

en heb je de form load code er ook ingezet bij mij werkt het goed.
Wat wilje dat er gebeurd

dus dat:
Code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim TopControl As Control = DirectCast(sender, Control)
        For Each c As Control In TopControl.Controls
            If c.HasChildren Then
                Form1_Load(c, e)
            End If
            If TypeOf c Is TextBox Then
                If CType(c, TextBox).Multiline = False Then
                    AddHandler c.KeyPress, AddressOf AnyTextBox_KeyPress
                End If
            End If
        Next

moet er ook in staan ^^; met dat erbij werkt het

kan je even die code uitleggen, want ik verst er eigenlijk nix van :s; zou er iemand kunnen per regel comentaar geven :s alvast bedankt :)
 
Laatst bewerkt:
Zou makkelijk zijn als je zegt wat je wil doen.

op de plaats van doe iets zet je de code die jij iets wild laten doen.
na je code komt de focus om terug te gaan naar je textbox
De code zorgt er voor dat je met de enterknop iets kan doen inplaats van een button.
 
Zou makkelijk zijn als je zegt wat je wil doen.

...

Ik wilde dus doen wat jij nu juist gemaakt hebt in code (dus dat probleem is opgelost):
ik begrijp juist niet de werking van deze code*, maar hij werkt wel,

*
Code:
 Dim TopControl As Control = DirectCast(sender, Control)
        For Each c As Control In TopControl.Controls
            If c.HasChildren Then
                Form1_Load(c, e)
            End If
            If TypeOf c Is TextBox Then
                If CType(c, TextBox).Multiline = False Then
                    AddHandler c.KeyPress, AddressOf AnyTextBox_KeyPress
                End If
            End If
        Next
 
Ok Hier een kleine uitleg
Code:
 'zorgt Voor het activeren van de controls op het form
        Dim TopControl As Control = DirectCast(sender, Control)
        ' met c Kan je de control bepalen
        For Each c As Control In TopControl.Controls
     'als er meerdere controls zijn      
 If c.HasChildren Then
                Form1_Load(c, e)
            End If
            'geeft aan welke controls gebruikt moeten worden Textboxen
            If TypeOf c Is TextBox Then

                'Indien een textbox is multiline moet je met enter naar de volgende regel
                'en niet naar je Doe iets dus alleen de normale textbox
                If CType(c, TextBox).Multiline = False Then
                    'geeft aan dat dit voor elke textbox in het form moet gelden als je op enter drukt
                    AddHandler c.KeyPress, AddressOf AnyTextBox_KeyPress
                End If
            End If
        Next
 
Ok Hier een kleine uitleg
Code:
 'zorgt Voor het activeren van de controls op het form
        Dim TopControl As Control = DirectCast(sender, Control)
        ' met c Kan je de control bepalen
        For Each c As Control In TopControl.Controls
     'als er meerdere controls zijn      
 If c.HasChildren Then
                Form1_Load(c, e)
            End If
            'geeft aan welke controls gebruikt moeten worden Textboxen
            If TypeOf c Is TextBox Then

                'Indien een textbox is multiline moet je met enter naar de volgende regel
                'en niet naar je Doe iets dus alleen de normale textbox
                If CType(c, TextBox).Multiline = False Then
                    'geeft aan dat dit voor elke textbox in het form moet gelden als je op enter drukt
                    AddHandler c.KeyPress, AddressOf AnyTextBox_KeyPress
                End If
            End If
        Next

bedankt voor de uitleg, want voor jou lijkt dit wss zeer eenvoudig ^^
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan