Klick Ereignis nur in einem bestimmten bereich

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von kevin89.

    Klick Ereignis nur in einem bestimmten bereich

    Hallo,
    ich möchte wenn man auf einen Bestimmten Bereich in meiner Form Klick ein Aktion
    ausführen! Wie lege ich diese Bereich fest und wie prüfe ich ob dort hingeklickt
    wird?

    MFG

    Werewolve

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

    Hallo

    Zum Beispiel so:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
    3. If e.Button = Windows.Forms.MouseButtons.Left Then
    4. ' Bereich festlegen
    5. Dim rec As New Rectangle(0, 0, 100, 100)
    6. ' prüfen
    7. If rec.Contains(e.Location) Then
    8. MsgBox("In den Bereich geklickt")
    9. End If
    10. End If
    11. End Sub
    12. End Class
    Um mein Problem noch ein bisschen zu Verdeutlichen hab ich mal dieses Bild erstellt.


    Also wenn man mit der Maus Über den Roten Bereich geht soll einen Aktion ausgefäuft werden und wenn man in den Roten Bereich klick soll auch einen Aktion ausgeführt werden. Wie bewerkstellige ich das?

    MFG

    Werewolve

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

    hallo werewolfe,

    ich denke die mitte sollte kein problem sein.
    im mouseklick event deiner form werden dir die kooprdinaten der maus mit übergeben.

    da du die mitte und die position des mausklick hast, kannst du doch sicher
    den radius ermitteln (pythagoras u.a.)

    ist der ermittelte radius kleiner als dein definierter wurde innerhalb geklickt.
    eher ein mathematisches problem

    gruss

    mikeb69
    ich hab ja hier schon ein code

    VB.NET-Quellcode

    1. Dim rec As New Rectangle(0, 0, 100, 100)


    nur wenn ich das mit der MousKordinaten vegleichen will sagt er das ein Bereich nicht in einen point umgewandelt werden kann!
    und mit welcher Zahl bestimme ich was ? Also Bei:

    Rectangle(0, 0, 100, 100)

    den Rot makiertem Bereich!

    MFG

    Werewolve
    Ich habs hinbekomme bleibt nur noch ein Problem!
    Ich möchte wenn man mit der Maus über diesen bereich geht das dann einen aktion ausgührt wir.
    Da Klappt auch ich habs in eine Mous_Move Prozesdur reingepackt, aber wenn ich dan über den
    Bereich gehe dann löst der bei jeder kleinen mausbewegnung diese aktion aus, wie mach ich das diese
    aktion solange die Maus in dem Bereich ist ausgeführt wir. es soll sich ein bild verändern!?
    Also oben:

    Quellcode

    1. Dim mousetouched As Boolean


    Und dann einfach:

    Quellcode

    1. If MausinBereich Then
    2. If mousetouched=false Then
    3. Ereignis
    4. mousetouched=true
    5. End If
    6. Else
    7. mousetouched=False
    8. End If



    Da MouseEnter & MausLeave dir ja nicht zur Verfuegung stehen, sorgt die Variable mousetouched dafuer, dass dein Ereignis nur einmal ausgefuehrt wird wenn die Maus in den Bereich kommt. Der obige Code ist selbstverstaendlich nur ein Mustercode, wie man es machen KOENNTE.

    lg