vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Multi-Klick 
Autor: stefanbla80
Datum: 21.12.17 15:48

Hallo zusammen,

Ich würde gerne in meine DataGridView einen „Multi-Klick“ einführen.
Heißt:
• Klicke ich einmal mit der linken Maustaste in ein Feld – mache das (diese Funktion gibt es ja)
• Klicke ich doppelt mit der linken Maustaste in ein Feld – mache das (diese Funktion gibt es ja)
• Klicke ich mit rechter Maustaste einmal – mache das (gibt es ja auch schon …)

Kurz und knapp
Ich suche nun nach einer Lösung wenn ich länger, z. B. 3 Sekunden mit der linken Maustaste auf ein Feld klicke, dass dann etwas ausgelöst wird.

Geht sowas generell?

Grüße
Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Multi-Klick 
Autor: Kuno60
Datum: 21.12.17 17:08

Hallo,
das kannst du mit Hilfe eines Timers machen.
Im MouseDown-Ereignis den Timer starten und im MouseUp-Ereignis den Timer stoppen.
Im Timer-Tick-Ereignis den Timer stoppen und dann die gewünschte Aktion ausführen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Multi-Klick 
Autor: sv00010
Datum: 21.12.17 17:10

Du müsstest die Zeit messen, welche zwischen dem MouseDown- und dem MouseUp-Ereignis verstreicht und dann falls die Zeit erreicht wurde dein eigenes Event auslösen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Multi-Klick 
Autor: Manfred X
Datum: 21.12.17 19:46

Hallo!

Ergänzend zu dem Hinweis von Kuno60 und sv00010:

Wenn Du eine zeitabhängige Reaktion durch den Benutzer
auslösen lässt, solltest Du ggf. nach Ablauf dieser Zeitspanne
eine visuelle Rückmeldung einbauen, damit kenntlich wird, daß
die angeforderte Aktion tatsächlich angelaufen ist (und der User
die Maustaste wieder loslassen kann).

Zusätzlich mußt Du in diesem Fall ggf. noch das direkte Bearbeiten
des MouseClick-Ereignisses nach dem MouseDown unterbinden!!!

https://docs.microsoft.com/en-us/dotnet/framework/winforms/mouse-events-in-windows-forms
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Multi-Klick 
Autor: Franki
Datum: 23.12.17 04:07

Hallo Stefan,

wie das indirekt mit Timer geht, da hast du ja schon in den Hinweisen erfahren.

Aber 3 Sekunden sind bei Mausaktionen ja eine gefühlte Eweigkeit und mener Meinung nach viel zu lang.

Kannst du nicht stattdessen die mittlere Maustaste verwenden? Die kannst du doch auch abfragen. Oder aber bei entsprechender Maus die diversen Zusatztasten.

Das würde ich bevorzugen bevor ich dem User einen 3 Sekunden Klick zumuten würde. Oder alternativ wenn dein Steuerelement den Fokus hat ganz auf die Maus zu verzichten und auf eine Tastatureingabe für das zusätzlich Feature zu gehen. Das ist auch schneller als die 3 Sekunden zu warten.

Oder beides zu kombinieren, STRG + Mausklick z.B.

Gruß und frohe Weihnachten,
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Multi-Klick 
Autor: stefanbla80
Datum: 06.01.18 16:44

Hallo zusammen,

habe nun 1 Sekunde um das Ereignis auszulösen porgrammiert.
Das scheint wirklich OK zu sein.

Danke für die Hilfestellungen

Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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