ListView - Doubleclick-Ereignis ohne Click-Ereignis auslösen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Thomas_uebt_noch.

    ListView - Doubleclick-Ereignis ohne Click-Ereignis auslösen

    Hallo liebe Fachleute,

    Bei ListView-DoubleClick wird immer vorher ListView-Click ausgelöst. Ich komme gar nicht zum DoubleClick-Ereignis.
    Ich brauche aber beide Ereignisse parallel (Click zum Eintrag bearbeiten und Doubleclick um eine verbundene Datei zu öffnen).
    (unter VB6 war das kein Problem ... :( )

    Vielen Dank im Voraus.
    Thomas
    Hey,

    da fallen mir 2 Sachen ein. Erstens, Du nimmst ein Datagridview, was tausendfach besser ist, als dieses Listview-Dings. Zweitens, Du löst es über ein Kontextmenü. Mir fällt jetzt kein Weg ein, das zu unterscheiden, was Du willst.

    EDIT: Noch ne 3. Möglichkeit. Du unterscheidest einfach den gedrückten Button. Z. B. Rechtsklick bearbeiten, Linksklick (oder eben Doppelklick) bearbeiten. Mittelklick sonst was...
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

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

    ... ich muss leider eine alte Anwendung umstellen. Wenn ich das ListView da raushole, kann ich auch gleich ganz neu programmieren - was ich auch gern tun würde, habe aber eine Deadline ...

    Und danke für die Alternativen. Vielleicht muss ich dazu greifen. Aber die Anwender sind seit 10 Jahren gewohnt, das bei Doppelklick eine bestimmte Aktion erfolgt - so eine Erwartungshaltung sollte man ohne Not nicht enttäuschen. Ich hatte gehofft, ich sei einfach nur zu blöd ....?
    Ich hätte ne unsaubere Lösung, aber funktioniert. Vieleicht hat ja noch jemand ne bessere idee?


    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim WithEvents tim As New Timer
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. ListView1.Items.Add("1")
    5. ListView1.Items.Add("2")
    6. tim.Interval = 400
    7. End Sub
    8. Private Sub ListView1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseClick
    9. tim.Start()
    10. End Sub
    11. Private Sub ListView1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseDoubleClick
    12. tim.Stop()
    13. MessageBox.Show("Mousedoubleclick")
    14. End Sub
    15. Private Sub tim_Tick() Handles tim.Tick
    16. tim.Stop()
    17. MessageBox.Show("Mouseclick")
    18. End Sub
    19. End Class


    mfG

    Derfuhr
    Hey,

    also, ich hab mich jetzt echt damit beschäftigt. Gefunden habe ich das hier:

    msdn.microsoft.com/en-us/library/ms171543.aspx

    Vielleicht arbeitest Du es mal für Dich durch und entscheidest dann, ob es nicht doch besser ist, Deinen Usern eine kleine Änderung zuzumuten. Die Lösung per Contextmenü würde ich auf alle Fälle wählen, da es auch jedem Windows-User geläufig ist.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o