knop+enter

Status
Niet open voor verdere reacties.

canstro

Gebruiker
Lid geworden
3 feb 2009
Berichten
134
Waarschijnlijk doodsimpel, toch vind ik niet echt iets heel duidelijk op google (het is mss al wat laat aan het worden voor mij :p)

Ik heb dus verschillende knoppen die verschillende dingen uitvoeren, nu wil ik dat 1 knop zowel werkt door erop te klikken als door op enter te duwen
 
Met tab kan je naar verschillende objecten in je form springen. Maar je wilt zeker niet eerst x keer tab drukken voordat je bij de button komt. Daarvoor zou ik in de event Me.Enter() de code ButtonX.Click() toevoegen. Hoe naar events gaan: ga naar properties, en klik bovenin dat venster op de bliksem. Dubbelklik daar op Enter.

Hopelijk ben ik duidelijk.
 
Heb gedaan wat je gezegd hebt, wat heel duidelijk was waarvoor dank, maar het werkt niet, of toch niet zoals ik het wil. als ik het opstart en iets invul en op enter duw, hoor ik een belletje en gebeurt er niks. ik plak de code hier onder, het is de bedoeling dat er in het tekstveld iets word ingevuld, en wanneer er op enter geduwd word de knop 'toevoegen' zijn werk doet...

Code:
Public Class Form1

    Dim kleinste, grootste, inhoud, counter, ietsommeetewerken As Integer

    Private Sub toevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles toevoegen.Click, MyBase.Enter


        If IsNumeric(invoerveld.Text) = False Then
            MessageBox.Show("De invoer is geen integer") '
        Else
            'invoer in variabele zetten
            inhoud = invoerveld.Text

            'controleren of het eerste invoer is
            If Not counter = 0 Then
                'als dit niet eerste invoer is dan
                'controleren of invoer kleiner is
                If inhoud < kleinste Then
                    'als invoer kleiner is, variabele toewijzen
                    kleinste = inhoud
                End If

                'controleren of invoer groter is
                If inhoud > grootste Then
                    'als invoer groter is, variable toewijzen
                    grootste = inhoud
                End If
                'teller +1, om de hoeveelheid gegevens ingevoerd bij te houden.
                counter = counter + 1


            Else 'als dit eerste invoer is
                'eerste invoer is zowel grootste als kleinste
                kleinste = inhoud
                grootste = inhoud
                'eerste invoer, #gegevens = 1
                counter = 1
            End If

            'als een negatief getal word ingevoerd, invoer gegevens stop. resultaten kunnen worden weergegeven.
            If inhoud < 0 Then
                resultaten.Enabled = True
                toevoegen.Enabled = False
            End If

            'inhoud toevoegen aan listbox.
            gegevenslijst.Items.Add(inhoud)

            'na invoer textbox leegmaken.
            invoerveld.Text = ""
        End If


    End Sub

    Private Sub resultaten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles resultaten.Click
        'resultaten weergeven
        resultaataantal.Text = counter
        resultaatgrootste.Text = grootste
        resultaatkleinste.Text = kleinste

        tekstaantal.Visible = True
        tekstgrootste.Visible = True
        tekstkleinste.Visible = True
        resultaataantal.Visible = True
        resultaatgrootste.Visible = True
        resultaatkleinste.Visible = True

        'ietsommeetewerken een waarde geven van 1, om bij teruggaan alles correct weer te geven
        ietsommeetewerken = 1

    End Sub

    Private Sub reset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles reset.Click

        'alles resetten
        grootste = 0
        kleinste = 0
        inhoud = 0
        counter = 0
        ietsommeetewerken = 0
        gegevenslijst.Items.Clear()
        toevoegen.Enabled = True
        resultaten.Enabled = False
        'resultaten verbergen
        tekstaantal.Visible = False
        tekstgrootste.Visible = False
        tekstkleinste.Visible = False
        resultaataantal.Visible = False
        resultaatgrootste.Visible = False
        resultaatkleinste.Visible = False

    End Sub


    Private Sub lijstknop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lijstknop.Click

        'Alles verbergen, listbox laten zien.
        invoerveld.Visible = False
        toevoegen.Visible = False
        resultaten.Visible = False
        reset.Visible = False
        lijstknop.Visible = False
        tekstaantal.Visible = False
        tekstgrootste.Visible = False
        tekstkleinste.Visible = False
        resultaataantal.Visible = False
        resultaatgrootste.Visible = False
        resultaatkleinste.Visible = False
        terug.Visible = True
        gegevenslijst.Visible = True

    End Sub

    Private Sub terug_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles terug.Click

        'teruggaan en weer zichtbaar maken
        invoerveld.Visible = True
        toevoegen.Visible = True
        resultaten.Visible = True
        reset.Visible = True
        lijstknop.Visible = True
        terug.Visible = False
        gegevenslijst.Visible = False

        'als resultaten al waren weergegeven, geef ze dan terug weer, anders niet. Maw als ietsommeetewerken 1 is.
        If ietsommeetewerken = 1 Then
            tekstaantal.Visible = True
            tekstgrootste.Visible = True
            tekstkleinste.Visible = True
            resultaataantal.Visible = True
            resultaatgrootste.Visible = True
            resultaatkleinste.Visible = True
        End If

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Text = "Gegevensreeks verwerken"
    End Sub


End Class
 
Ik mis in jouw zeer vele code de Form1_Enter sub. Daar moet komen: ButtonToevoegen.Click()

Nog een tip, je kan ook doen om te resetten een.visible = twee.visible = drie.visible = vier.visible = false. Zo worden al die dingen op false gezet. Scheelt weer wat typen.
 
dat 2de begrijp ik dan weer wel en dat eerste niet xd waar moet wat komen?
de naam van de knop is simpelweg 'toevoegen'...

en met 'jou heel veel code' pikte ik een hint op dat het allemaal veel korter kan xd nog tips zoals de "een.visible : ..."?

gracias!!!
 
Je wilt dus begrijp ik, dat wanneer een gebruiker iets in een veld heeft ingevuld en dan op Enter drukt er hetzelfde gebeurd als wanneer de gebruiker na het invullen van dat veld op de knop drukt?
Haal dan de code uit de knop weg en plaats dat in een aparte sub-routine.
De code in de knop wordt dan: Call sub-routine
De code voor de Enter key van het betreffende veld wordt dan ook: Call sub-routine.
Zo heb je 1 stuk code die door beide events kan worden aangeroepen.

Let wel even op het attribuut EnterKeyBehaviour van dat veld.
 
Laatst bewerkt:
Ga naar de properties van form1. Klik bovenin properties op het bliksempje van events. Typ in de kolom rechts van Enter: Toevoegen.Click()

Lukt dat?

Edit: net te laat
 
Laatst bewerkt:
[CPP]Private Sub Check(Byval Checked As Boolean)
tekstaantal.Visible = Checked
tekstgrootste.Visible = Checked
tekstkleinste.Visible = Checked
resultaataantal.Visible = Checked
resultaatgrootste.Visible = Checked
resultaatkleinste.Visible = Checked
End Sub[/CPP]

Op true:

[CPP]Check(True)[/CPP]

Op false

[CPP]Check(False)[/CPP]

Scheelt wat typen :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan