Visual Basic 2010 Problem - Timer durch If Abfrage

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Biddi.

    Visual Basic 2010 Problem - Timer durch If Abfrage

    Guten Tag,

    Falls ich irgendwelche Fehler gemacht habe, dann tut es mir leid, ist mein erster Beitrag hier ^^

    So, ich habe ein Problem mit Visual Basic 2010.

    Ich habe eine ComboBox in der ich zwischen "a", "s", "d" und "f" wählen kann.
    Wenn ich einen Button drücke wird die die Auswahl in einer Variablen ("hotkey") gespeichert.
    Nun habe ich unter Form1_KeyPress einige If-Afragen.
    Wenn z.B der hotkey "a" ist und die a Taste gedrückt wird, soll der Timer starten, aber das funktioniert nicht. Bitte um Hilfe!



    Dim hotkeyA As Boolean
    Dim hotkeyS As Boolean
    Dim hotkeyD As Boolean
    Dim hotkeyF As Boolean

    Private Sub Form1_KeyPress(ByVal...

    If hotkeyA = True Then
    Select Case e.KeyChar
    Case "a"
    SetCursorTimer.Start()
    End Select
    End If
    If hotkeyS = True Then
    Select Case e.KeyChar
    Case "s"
    SetCursorTimer.Start()
    End Select
    End If
    If hotkeyD = True Then
    Select Case e.KeyChar
    Case "d"
    SetCursorTimer.Start()
    End Select
    End If
    If hotkeyF = True Then
    Select Case e.KeyChar
    Case "f"
    SetCursorTimer.Start()
    End Select
    End If

    End Sub


    Private Sub Button1_Click(ByVal...

    If ComboBox1.Text = "F1" Then
    hotkeyA = True
    End If
    If ComboBox1.Text = "F2" Then
    hotkeyS = True
    End If
    If ComboBox1.Text = "F3" Then
    hotkeyD = True
    End If
    If ComboBox1.Text = "F4" Then
    hotkeyF = True
    End If
    Hallo und willkommen im Forum!
    Es gibt einen Button im Editor, da kannst du den Code richtig einrücken (Siehe Anlagen)
    Zu deinem Problem:

    Poste doch bitte mal den gesamten Code nochmal neu, sprich auch das handles Event.

    Ist KeyPreview akzeptiert?
    Bilder
    • button.JPG

      8,2 kB, 31×44, 173 mal angesehen
    Liebe Grüße
    sothere
    Danke sothere,
    Hier der komplette code, lasst euch von Rest nicht iritieren, habe eine Englische Verion mit eingebaut ^^
    Wenn ich auf VB.Net klicke tut sich nichts ?! Oo

    Public Class Form1

    Dim hotkeyA As Boolean
    Dim hotkeyS As Boolean
    Dim hotkeyD As Boolean
    Dim hotkeyF As Boolean
    Dim passwort As String

    Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress

    If hotkeyA = True Then
    Select Case e.KeyChar
    Case "a"
    SetCursorTimer.Start()
    End Select
    End If
    If hotkeyS = True Then
    Select Case e.KeyChar
    Case "s"
    SetCursorTimer.Start()
    End Select
    End If
    If hotkeyD = True Then
    Select Case e.KeyChar
    Case "d"
    SetCursorTimer.Start()
    End Select
    End If
    If hotkeyF = True Then
    Select Case e.KeyChar
    Case "f"
    SetCursorTimer.Start()
    End Select
    End If

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If My.Settings.Sprache = "g" Then
    EinstellungenToolStripMenuItem.Text = "Einstellungen"
    SpracheToolStripMenuItem.Text = "Sprache"
    DeutschToolStripMenuItem.Text = "Deutsch"
    EnglischToolStripMenuItem.Text = "Englisch"
    VersionsinformationenToolStripMenuItem.Text = "Versionsinformationen"
    HerstellerinformationenToolStripMenuItem.Text = "Herstellerinformationen"
    AnleitungToolStripMenuItem.Text = "Anleitung"
    Label1.Text = "Aktiv-Hotkey"
    Label2.Text = "Passwort"
    Button1.Text = "Übernehmen"
    End If

    If My.Settings.Sprache = "e" Then
    EinstellungenToolStripMenuItem.Text = "settings"
    SpracheToolStripMenuItem.Text = "language"
    DeutschToolStripMenuItem.Text = "german"
    EnglischToolStripMenuItem.Text = "english"
    VersionsinformationenToolStripMenuItem.Text = "version information"
    HerstellerinformationenToolStripMenuItem.Text = "manufacturer information"
    AnleitungToolStripMenuItem.Text = "instructions"
    Label1.Text = "aktiv-hotkey"
    Label2.Text = "password"
    Button1.Text = "ok"
    End If

    End Sub

    Private Sub VersionsinformationenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VersionsinformationenToolStripMenuItem.Click
    If My.Settings.Sprache = "g" Then
    MsgBox("Version: 1.0.0", MsgBoxStyle.OkOnly, "Versionsinformationen")
    End If
    If My.Settings.Sprache = "e" Then
    MsgBox("version: 1.0.0", MsgBoxStyle.OkOnly, "version information")
    End If
    End Sub

    Private Sub HerstellerinformationenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HerstellerinformationenToolStripMenuItem.Click
    If My.Settings.Sprache = "g" Then
    MsgBox("© 2014 by BiddiProducts" & vbCrLf & "www.biddiproducts.weebly.com", MsgBoxStyle.OkOnly, "Herstellerinformationen")
    End If
    If My.Settings.Sprache = "e" Then
    MsgBox("© 2014 by BiddiProducts" & vbCrLf & "www.biddiproducts.weebly.com", MsgBoxStyle.OkOnly, "manufacturer information")
    End If
    End Sub

    Private Sub EnglischToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EnglischToolStripMenuItem.Click
    EinstellungenToolStripMenuItem.Text = "settings"
    SpracheToolStripMenuItem.Text = "language"
    DeutschToolStripMenuItem.Text = "german"
    EnglischToolStripMenuItem.Text = "english"
    VersionsinformationenToolStripMenuItem.Text = "version information"
    HerstellerinformationenToolStripMenuItem.Text = "manufacturer information"
    AnleitungToolStripMenuItem.Text = "instructions"
    Label1.Text = "aktiv-hotkey"
    Label2.Text = "password"
    Button1.Text = "ok"

    My.Settings.Sprache = "e"
    My.Settings.Save()

    End Sub

    Private Sub DeutschToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DeutschToolStripMenuItem.Click
    EinstellungenToolStripMenuItem.Text = "Einstellungen"
    SpracheToolStripMenuItem.Text = "Sprache"
    DeutschToolStripMenuItem.Text = "Deutsch"
    EnglischToolStripMenuItem.Text = "Englisch"
    VersionsinformationenToolStripMenuItem.Text = "Versionsinformationen"
    HerstellerinformationenToolStripMenuItem.Text = "Herstellerinformationen"
    AnleitungToolStripMenuItem.Text = "Anleitung"
    Label1.Text = "Aktiv-Hotkey"
    Label2.Text = "Passwort"
    Button1.Text = "Übernehmen"

    My.Settings.Sprache = "g"
    My.Settings.Save()

    End Sub

    Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
    System.Diagnostics.Process.Start("www.biddiproducts.weebly.com")
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    '' Fehlerabfrage:

    If ComboBox1.Text = "" Then
    If My.Settings.Sprache = "g" Then
    MsgBox("Sie müssen einen Hotkey festlegen!", MsgBoxStyle.OkOnly, "Fehler!")
    End If
    If My.Settings.Sprache = "e" Then
    MsgBox("You must set a hotkey!", MsgBoxStyle.OkOnly, "Error!")
    End If
    Return
    End If

    If TextBox1.Text = "" Then
    If My.Settings.Sprache = "g" Then
    MsgBox("Sie müssen ein Passwort festlegen!", MsgBoxStyle.OkOnly, "Fehler!")
    End If
    If My.Settings.Sprache = "e" Then
    MsgBox("You must set a password!", MsgBoxStyle.OkOnly, "Error!")
    End If
    Return
    End If

    '' Daten speichern

    If ComboBox1.Text = "F1" Then
    hotkeyA = True
    End If
    If ComboBox1.Text = "F2" Then
    hotkeyS = True
    End If
    If ComboBox1.Text = "F3" Then
    hotkeyD = True
    End If
    If ComboBox1.Text = "F4" Then
    hotkeyF = True
    End If

    passwort = TextBox1.Text
    TextBox1.Text = ""
    My.Settings.Save()

    Me.WindowState = FormWindowState.Minimized

    End Sub

    Private Sub SetCursorTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SetCursorTimer.Tick
    Cursor.Position = New Point(Cursor.Position.X - 500, Cursor.Position.Y - 500)
    End Sub

    End Class
    Ja, du musst deinen eingefügten Code markieren und dann auf VB.net klicken

    Zu deinem Problem:
    Abgesehen davon, das man Sprache in in das Programm selber reinschreibt:

    Stell bei deinem Form die KeyPreview Eigenschaft auf True. (Siehe Anhang ;) )

    Und dann gefällt mir persönlich die Verschachtelung von If und Case nicht.
    Ich hab jetzt nichts ausprobiert, aber wenn KeyPreview nicht hilft, würde ich dort ansetzten.
    Bilder
    • key.JPG

      60,77 kB, 485×677, 94 mal angesehen
    Liebe Grüße
    sothere