NumericUpDown - weiter mit Enter

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Schamash.

    NumericUpDown - weiter mit Enter

    Moin !

    da die Fragestellung etwas anders ist mache ich ein weiteres Posting auf.

    Habe jetzt bei mir NumericUpDown eingebaut - aber der Fokus wandert nur mit TAB weiter. Soweit ich jetzt weiß ist ein Ereignis erforderlich das in den Eigenschaften über die Parameter bei dem "blitz-Symbol" gelistet wird.

    Aber wenn ich dort unter ENTER einmal schaue, werden nur die Sub gelistet die aktuell in meiner Class enthalten sind.

    Auch mit den anderen gefundenen Seiten im Web komme ich nicht weiter.

    Muss ich dafür erst selber etwas schreiben .... ?

    Irgendwie verstehe ich das Prinzip nicht ganz.

    Auch hier nochmal die Bitte um Hilfe.

    Gruß Jan
    Du kannst das KeyDown Event abrufen und bei Enter ein Tab senden:

    VB.NET-Quellcode

    1. Private sub num_KeyDown(sender as object, e as Keyeventargs)
    2. If e.KeyCode = KEys.Enter then
    3. SendKeys.Send("{TAB}")
    4. end if
    5. end sub


    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Hi !

    danke erst einmal.

    Erst einmal habe ich das etwas ergänzt, damit bei mir keine weiteren Meldungen kamen:

    VB.NET-Quellcode

    1. Private Sub num_KeyDown(sender As Object, e As Windows.Forms.KeyEventArgs)
    2. If e.KeyCode = Windows.Forms.Keys.Enter Then
    3. Windows.Forms.SendKeys.Send("{Tab}")
    4. End If
    5. End Sub


    Aber das ist sicherlich immer eine Frage der Umgebungsdefinitionen.

    Aber wo wird jetzt diese Funktion aktiviert. In der Liste mit dem Blitz taucht diese jetzt weiterhin nicht auf!

    ???

    Gruß Jan
    Das Event muss es da aber geben, dass Du es abonnieren kannst. Schließlich hat das jedes Control und NumericUpDown erbt ja davon.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    hi !

    ich habe das VS nochmal neu gestartet und immer ist noch nichts da - zumindest dort wo ich es suche!

    Deshalb habe ich nochmal ein Bild erstellt:



    Es werden nur die anderen Sub gelistet!

    Hilft das weiter....?

    Gruß Jan

    PS: mit meinem Upload erst gesehen!
    Was machst Du da? Du musst da KeyDown auswählen, nicht Enter. Vergiss das mal, das ist nicht für Dein Vorhaben geeignet. So zeigt er Dir natürlich nur kompatible Signaturen an.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @VB1963 Es geht ja darum, das KeyDown-Event zu abonnieren, nicht Enter. ;)

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    ok und langsam nähert sich das Eichhörnchen.

    Das ganze werde ich mir gleich einmal in meine Doku übernehmen.

    Wäre das auch der richtige Ansatz um den Inhalt des Numeric...Fensters bei GotFokus mit einer Komplettauswahl des Inhaltes zu versehen, wie man dieses von anderen Programmen kennt?

    Gruß Jan
    @Trade
    Ok, ich habe das an seinem Beispiel demonstrieren wollen (da hat er Enter ausgewählt gehabt). :) ;)
    Ich glaube, er weis nicht wie die Events als solches gehandhabt und erstellt werden...
    @jan99
    beschreibe einmal ganz genau, was du machen möchtest...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VB1963“ ()

    hi !

    erreicht ein Fokus ein Textfeld oder in meinem Fall ein NumericUpDown-Feld, dann soll der gesamte Inhalt automatisch ausgewählt werden.

    Es wäre also derselbe Effekt beim Erhalt des Fokus realisiert, der eintritt wenn man einen Doppelklick auf den Inhalt anwendet.

    War das verständlich.

    Gruß Jan

    jan99 schrieb:

    VB.NET-Quellcode

    1. Private Sub num_KeyDown(sender As Object, e As Windows.Forms.KeyEventArgs)
    da fehlt doch die Handles-Klausel hinten dran:

    VB.NET-Quellcode

    1. Private Sub num_KeyDown(sender As Object, e As Windows.Forms.KeyEventArgs) Handles num.KeyDown
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Moin !

    langsam schwirrt mir der Kopf.

    Habe jetzt einmal alle betroffenen Felder angeklickt und bei den Ereignissen die entsprechende Funktion ausgewählt.

    Dann habe ich mir die Funktion im Code angesehen:

    VB.NET-Quellcode

    1. Private Sub num_KeyDown(sender As Object, e As Windows.Forms.KeyEventArgs) Handles num.KeyDown, nd_GK_Hoch_Max.KeyDown


    Merkwürdigerweise ist da jetzt ein nd_GK_Hoch_Max.KeyDown mit eingetragen. Hätten alle betroffenen Felder hier gelistet werden müssen ?

    Bei dem num.KeyDown wird das num noch angemerkt mit dem Hinweis
    Fehler 2 Die Handles-Klausel erfordert eine WithEvents-Variable, die im enthaltenden Typ oder einem seiner Basistypen definiert wird. X:\VB_NET_2015\Projects\tappenbeckja\EBL.Optionen\EBL.Optionen\cls_EBL_Optionen.vb 741 88 EBL.Optionen


    wurde da noch etwas vergessen ?

    Gruß Jan
    Moin !

    vermutlich hängt es damit zusammen, dass ich mehrere Objekt auf einem gewählt habe.

    Mit

    VB.NET-Quellcode

    1. Private Sub num_KeyDown(sender As Object, e As Windows.Forms.KeyEventArgs) Handles txt_company.KeyDown, txt_street.KeyDown, txt_city.KeyDown, txt_housenumber.KeyDown, txt_postbox.KeyDown, _
    2. nd_GK_Rechts_Min.KeyDown, nd_GK_Hoch_Min.KeyDown, nd_GK_Rechts_Max.KeyDown, nd_GK_Hoch_Max.KeyDown, nd_UTM_Rechts_Min.KeyDown, nd_UTM_Hoch_Min.KeyDown, nd_UTM_Rechts_Max.KeyDown, _
    3. nd_UTM_Hoch_Max.KeyDown, nd_UTM_AddKonstante.KeyDown, nd_Höhe_Min.KeyDown, nd_Höhe_Max.KeyDown


    funktioniert es jedenfalls.

    Danke für die Geduld.

    Wenn ich jetzt noch einer einen Vorschlag für #12 hat, dann würde ich mich sehr freuen.

    Gruß Jan
    So einmal auf die Schnelle...

    VB.NET-Quellcode

    1. Private Sub SelectAllValue(sender As NumericUpDown)
    2. sender.Select(0, sender.ToString.Length - 1)
    3. End Sub
    diese Sub verwendest du beim NUD.GotFocus-Event bzw. auch beim NUD.Click-Event - müsste dann funzen...
    Noch ein Tip: nd_UTM_Hoch_Max ??? achte auf die Benamung der Controls - die sollten verstänlich sein und damit versteht man deinen Code um Vieles besser...
    Moin !

    das mit der Markierung habe ich erfolgreich bei mir eingebaut.

    Danke

    Ergänze das Thema um NumericUpDown noch einmal.

    Wenn ich einen Wert außerhalb de Geltungsbereichtes eingebe wird ein anderer - dem am nächsten - gesetzt.

    Kann man dieses abfangen und den Anwender darüber informieren das er seine Eingabe nochmal überdenken soll?

    Gruß Jan