vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 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 - Ein- und Umsteiger
Unterschied zwischen Maus und Touchscreen?! -> Button reagiert erst bei 2. Click 
Autor: MikeJ
Datum: 01.02.11 22:43

Hallo

ich habe ein recht seltsames Problem: Meine Anwendung läuft auf einem Panel-PC mit Touchscreen; um Eingaben zu ermöglichen habe ich selbst eine Touch-Tastatur erstellt (um das betätigen "ungewollter" Tasten zu verhindern, habe ich nicht die OSK verwendet).
Bediene ich meine Anwendung mit der Maus funktioniert alles einwandfrei, nutze ich jedoch zur Eingabe den Touchscreen, reagieren die Tasten erst ab dem 2. Klick. Es scheint, als würde der erste Klick erst das Fenster aktivieren, und erst beim zweiten mal die Tasten reagieren.
Ich verstehe jedoch nicht, warum das nur beim Touch so ist?!
Ich habe nach dem Laden auch schon "Me.Focus" versucht, jedoch ohne Erfolg.

Hier mal die wesentlichen Teile des Codes für die Tastatur, vielleicht fällt ja jemandem etwas auf:
Partial Public Class mjsKeyboard
#Region "Allgemein"
 
 
 
    Public Sub New(ByVal ShowKeyboard As Boolean, Optional ByVal Content As _
      String = Nothing, Optional ByVal PasswordInput As Boolean = False)
        MyBase.New()
 
        Me.InitializeComponent()
 
        Me.Owner = Application.Current.MainWindow
 
        GenerateDictionary()
 
        If PasswordInput Then
            txbInput.Visibility = Windows.Visibility.Collapsed
            PWInput.Visibility = Visibility.Visible
            bPasswordInput = True
            btnLEFT.Visibility = Windows.Visibility.Hidden
            btnRIGHT.Visibility = Windows.Visibility.Hidden
        End If
 
        lblWindowContent.Content = Content
        bShowKeyboard = ShowKeyboard
 
        'Schriftsatz auf den Buttons initialisieren
        CAPoff()
    End Sub
 
 
 
    Public Overloads Function ShowDialog(ByRef Text As String) As MsgBoxResult
        If bShowKeyboard Then
            'Text eintragen
            txbInput.Text = Text
            PWInput.Password = Text
 
            MyBase.ShowDialog()
            If _MsgBoxResult = MsgBoxResult.Ok Then
                If bPasswordInput Then
                    Text = PWInput.Password
                Else
                    Text = txbInput.Text
                End If
            End If
            Return _MsgBoxResult
        Else
            Return Microsoft.VisualBasic.MsgBoxResult.Cancel
        End If
    End Function
 
    Private Sub mjsKeyboard_ContentRendered(ByVal sender As Object, ByVal e As _
      System.EventArgs) Handles Me.ContentRendered
        ' Me.Focus()
    End Sub
 
 
    Private Sub mjsKeyboard_Loaded(ByVal sender As Object, ByVal e As _
      System.Windows.RoutedEventArgs) Handles Me.Loaded
        If Not bPasswordInput Then
            'txbInput.Focus()
            If txbInput.Text.Length > 0 Then
                txbInput.CaretIndex = txbInput.Text.Length
            End If
        Else
            'PWInput.Focus()
        End If
        'Me.Focus()
    End Sub
#End Region
 
#Region "Private Sub und Function"
 
    Private Sub GenerateDictionary()
        Dict.Add(0, {"0", "="})
        Dict.Add(1, {"1", "!"})
        Dict.Add(2, {"2", "'"})
        '...
        Dict.Add(40, {",", ";"})
        Dict.Add(41, {".", ":"})
        Dict.Add(42, {"-", "_"})
        Dict.Add(43, {" ", " "})
    End Sub
 
 
    Private Sub InsertOnCarret(ByVal index As Integer)
        If bPasswordInput Then
            If SHIFT Or CAP Then
                PWInput.Password = PWInput.Password.Insert( _
                  PWInput.Password.Length, Dict(index)(1))
            Else
                PWInput.Password = PWInput.Password.Insert( _
                  PWInput.Password.Length, Dict(index)(0))
            End If
        Else
            Dim cIndex As Integer = txbInput.CaretIndex
            If SHIFT Or CAP Then
                txbInput.Text = txbInput.Text.Insert(cIndex, Dict(index)(1))
            Else
                txbInput.Text = txbInput.Text.Insert(cIndex, Dict(index)(0))
            End If
            txbInput.CaretIndex = cIndex + 1
            txbInput.Focus()
        End If
        SHIFT = False
    End Sub
#End Region
 
#Region "Tastatureingaben"
    Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As _
      System.Windows.RoutedEventArgs)
        InsertOnCarret(1)
    End Sub
 
    Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As _
      System.Windows.RoutedEventArgs)
        InsertOnCarret(2)
    End Sub
 
    '...
 
    Private Sub btnZ_Click(ByVal sender As System.Object, ByVal e As _
      System.Windows.RoutedEventArgs)
        InsertOnCarret(35)
    End Sub
 
 
#End Region
 
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Unterschied zwischen Maus und Touchscreen?! -> Button rea...4.184MikeJ01.02.11 22:43
Re: Unterschied zwischen Maus und Touchscreen?! -> Button...2.374MikeJ02.02.11 20:50
Problem gelöst!2.179MikeJ09.02.11 21:17

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