none
Oval Shape blockiert KeyDown- Ereignis RRS feed

  • Frage

  • Hallo,

    ich habe folgende Problem:

    Ich möchte mit den Pfeiltasten Panel nach links oder rechts bewegen.

    Dazu benutze ich das KeyDown bzw. KeyUp Ereignis.

    Das hat auch alles wunderbar funktioniert, bis ich ein OvalShape- Objekt in das Form erstellt habe.

    Nun reagiert das Ereignis nicht mehr, wenn ich die Tasten drücke.

    Wenn ich das OvalShape Objekt entferne, funktioniert alles wieder wunderbar!

    Das OvalShape Objekt muss also irgendwie das KeyDown/ KeyUp Ereignis beeinflussen bzw. blockieren!

    Beste Grüße

    Dennis

    Sonntag, 2. Juni 2013 19:48

Antworten

  • Hallo, du hast recht. Das OvalShape scheint sich den Tastaturfokus etwas an sich zu reisen. Es gibt jedoch einen einfachen Workaround: Packe alles in ein Panel. Das Panel dockst du direkt in der Form an (Dock=Fill). Dadurch scheint das Problem nicht mehr weiter zu bestehen.

    Dann solltest du nurnoch Enabled=False bei den OvalShape's setzen. Sodass diese nicht mehr den Fokus bekommen können.

    PS: Stelle VB.NET-bezogene Fragen bitte das nächste mal hier oder hier. Bzw. VB-Fragen hier.
    Falls du C# benutzen solltest, dann hier oder hier.


    <Code:13/> - Koopakiller [kuːpakɪllɐ]
    Webseite | Code Beispiele | Facebook | Snippets
    Wenn die Frage beantwortet ist, dann markiert die hilfreichsten Beiträge als Antwort und bewertet die Beiträge. Danke.
    Einen Konverter zwischen C# und VB.NET Code gibt es hier.

    • Als Antwort markiert 123Dennis Dienstag, 4. Juni 2013 17:22
    Sonntag, 2. Juni 2013 23:58
    Moderator

Alle Antworten

  • Hallo, du hast recht. Das OvalShape scheint sich den Tastaturfokus etwas an sich zu reisen. Es gibt jedoch einen einfachen Workaround: Packe alles in ein Panel. Das Panel dockst du direkt in der Form an (Dock=Fill). Dadurch scheint das Problem nicht mehr weiter zu bestehen.

    Dann solltest du nurnoch Enabled=False bei den OvalShape's setzen. Sodass diese nicht mehr den Fokus bekommen können.

    PS: Stelle VB.NET-bezogene Fragen bitte das nächste mal hier oder hier. Bzw. VB-Fragen hier.
    Falls du C# benutzen solltest, dann hier oder hier.


    <Code:13/> - Koopakiller [kuːpakɪllɐ]
    Webseite | Code Beispiele | Facebook | Snippets
    Wenn die Frage beantwortet ist, dann markiert die hilfreichsten Beiträge als Antwort und bewertet die Beiträge. Danke.
    Einen Konverter zwischen C# und VB.NET Code gibt es hier.

    • Als Antwort markiert 123Dennis Dienstag, 4. Juni 2013 17:22
    Sonntag, 2. Juni 2013 23:58
    Moderator
  • Ok, ich habe jetzt ein Panel auf Fill eingestellt. Soll ich für dieses Panel dann das PrewiewKeyDown Ereignis verwenden?

    Weil das normale Keydown Ereignis gibt es offenbar nur für Forms.

    Montag, 3. Juni 2013 19:35
  • Ich habe es einfach bei der Form belassen. Also von der Form das KeyDown-Event abbonniert. PrevieKeyDown wird kurz vor KeyDown ausgelöst und macht somit eigentlich nichts anderes. Somit müsste es egal sein. Bei der Form habe ich es aber getestet.

    <Code:13/> - Koopakiller [kuːpakɪllɐ]
    Webseite | Code Beispiele | Facebook | Snippets
    Wenn die Frage beantwortet ist, dann markiert die hilfreichsten Beiträge als Antwort und bewertet die Beiträge. Danke.
    Einen Konverter zwischen C# und VB.NET Code gibt es hier.

    Montag, 3. Juni 2013 19:48
    Moderator
  • Super, das scheint zu funktionieren.

    Vielen Dank für deine Hilfe!

    Dienstag, 4. Juni 2013 17:22