vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Taste Kombination im Form KeyDown (Demo mit Timer) 
Autor: Manfred X
Datum: 03.03.15 13:02

Bei mir funktioniert diese Lösung.

Wie verwertest Du den Wert bzw. die Wertänderung in der Selected-Variable weiter?

Eventuell mußt Du die LastInput-Date auf Formularebene deklarieren und sicher
stellen, daß der Wert in der Selected-Variable frühestens eine Sekunde nach der
letzten Eingabe (in LastInput) ausgewertet wird.

Demo für Wahl eines Listenindex per Zeitsteuerung:
Public Class frmDoubleInput
 
    Dim WithEvents timInput As New Timer With {.Enabled = True, .Interval = 500}
    Dim lstItems As New ListBox With {.Parent = Me, .Width = 100, .Height = 200}
    Dim lastinput As Date = Now
    Dim selectedindex As Integer = -1
    Dim doubleclick_interval As New TimeSpan(0, 0, 1)
 
    Private Sub frmDoubleInput_Load(sender As System.Object, _
                    e As System.EventArgs) Handles MyBase.Load
 
        Me.KeyPreview = True
        For i As Integer = 0 To 99
            lstItems.Items.Add(i.ToString)
        Next i
    End Sub
 
 
    Private Sub frmMain_KeyDown(sender As Object, _
                    e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
 
        If (e.KeyCode >= Keys.NumPad0 And e.KeyCode <= Keys.NumPad9) AndAlso _
          e.Control Then
            If New TimeSpan(Now.Ticks - lastinput.Ticks) > _
            doubleclick_interval Then selectedindex = 0
            lastinput = Now
            If selectedindex > 9 Then selectedindex = 0
            selectedindex *= 10
            selectedindex += CType(e.KeyCode, Integer) - 96
        End If
    End Sub
 
 
    Private Sub Timer1_Tick(sender As System.Object, _
                e As System.EventArgs) Handles timInput.Tick
 
        If selectedindex >= 0 And selectedindex < lstItems.Items.Count Then
            If New TimeSpan(Now.Ticks - lastinput.Ticks) > _
              doubleclick_interval Then
                lstItems.SelectedIndex = selectedindex
                selectedindex = -1
                lstItems.Refresh()
            End If
        End If
 
    End Sub
End Class


Beitrag wurde zuletzt am 03.03.15 um 13:26:34 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Taste Kombination im Form KeyDown1.457henrikl200003.03.15 08:47
Re: Taste Kombination im Form KeyDown951ModeratorDaveS03.03.15 09:45
Re: Taste Kombination im Form KeyDown917henrikl200003.03.15 09:49
Re: Taste Kombination im Form KeyDown984GPM03.03.15 10:42
Re: Taste Kombination im Form KeyDown915henrikl200003.03.15 11:08
Re: Taste Kombination im Form KeyDown1.030GPM03.03.15 11:18
Re: Taste Kombination im Form KeyDown916henrikl200003.03.15 11:26
Re: Taste Kombination im Form KeyDown986Manfred X03.03.15 11:24
Re: Taste Kombination im Form KeyDown988henrikl200003.03.15 12:06
Re: Taste Kombination im Form KeyDown957Manfred X03.03.15 12:17
Re: Taste Kombination im Form KeyDown890henrikl200003.03.15 12:46
Taste Kombination im Form KeyDown (Demo mit Timer)1.150Manfred X03.03.15 13:02
Re: Taste Kombination im Form KeyDown941henrikl200003.03.15 13:33
Re: Taste Kombination im Form KeyDown988Manfred X03.03.15 13:40
Re: Taste Kombination im Form KeyDown892henrikl200004.03.15 12:14

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel