Buon pomerigio a tutti...
Stavo realizzando un progetto col monthcalendar, solo che nella lista degli eventi non trovo l'evento doubleclick.... qualcuno sa dirmi qualcosa a riguardo?
Buon pomerigio a tutti...
Stavo realizzando un progetto col monthcalendar, solo che nella lista degli eventi non trovo l'evento doubleclick.... qualcuno sa dirmi qualcosa a riguardo?
Sapete per caso un qualche sistema per calcolare il numero di click?
sapete aiutarmi?!?
grazie...![]()
io uso questo codice quando voglio l'evento Double-Click per il Button e va alla grande...lo rendo pubblico:Originariamente inviato da 91andre91
Sapete per caso un qualche sistema per calcolare il numero di click?
sapete aiutarmi?!?
grazie...![]()
ho inserito due note dove dev'essere inserito il codice per i due eventicodice:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Static Dim DoppioClick As Boolean = False If DoppioClick Then DoppioClick = False 'inserire qua il codice per l'evento DOPPIO-CLICK '............. Exit Sub End If DoppioClick = True 'inserire qua il codice per il normale evento CLICK '.......... Application.DoEvents() : Threading.Thread.Sleep(100) DoppioClick = False End Sub
naturalmente il resto non va toccato, solo per personalizzare il ritardo tra il click e doubleclick, variando Thread.Sleep(..)
Michele
Grazie per la tua risposta, ma il codice da te postato funziona anche in c#? ovviamente riportando le varie modifiche di sintassi...
non conosco il C#...essendoci solo comandi base, penso di si! è da provare a tradurlo e mi saprai dire!![]()
Michele
non funzionagrazie lo stesso...
Posta il tuo codice e vediamo dov'è il problema...
Chi non cerca trova.
Io sono davanti a problema:
sto utilizzando l'oggetto monthcalendar, voglio che quando faccio un click mi esegua una certa operazione ad esempio vedere tutti gli appuntamenti del giorno e fino a qua funziona;
invece quando faccio doppio click su una specifica data mi deve aprire un nuovo form dove inserisco l'appuntamento. Il problema sta appunto negli eventi, l'evento associato a un solo click si chiama monthcalendar1_datachange e io devo trovare un evento che mi gestisca il doppio click, ma nella lista degli eventi non lo trovo...
Il mio problema sta nel trovare un modo per gestire il doppio click... e qui chiedo il vostro aiuto...
Il codice sotto è quello che ho "tradotto" da michelecali...
l'avviso è:codice:private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e) { if (DoubleClick == false) { //codice doppio click } else { // codice singolo click } }
Avviso 1 'Prova.Form1.DoubleClick' nasconde il membro ereditato 'System.Windows.Forms.Control.DoubleClick'. Se ciò è intenzionale, utilizzare la parola chiave new.
l'errore è:
Impossibile applicare l'operatore '==' a operandi di tipo 'System.EventHandler' e 'bool'
1.non ci vuole uno che conosce il c# per capire che quel codice tradotto manca di un bel pò di righe di codice che ho postato![]()
2. ho visto adesso che l'oggetto monthcalendar non ha neanche l'evento click dove andrebbe inserito quel codice...![]()
ho fatto una prova io a spostare quel codice nell'evento MosueDown e risponde ugualmente al doppio-click![]()
l'unico inconveniente con quell'evento viene eseguito anche se si clicca-doppio dove non ci sono date nell'area grafica del mountcalendar...
se per te non è un problema, così:
-lasci il normale tuo codice nell'evento "DateChanged" e poi traduci "PARIPASSO" questo codice e lo inserisci nell'evento MouseDown:
DoppioClick è una variabile Static (che tra l'altro non hai dichiarato) è non ha bisogno di tradurre il nome in DoubleClickcodice:Static Dim DoppioClick As Boolean = False If DoppioClick Then DoppioClick = False 'inserire qua il codice per l'evento DOPPIO-CLICK '............. Exit Sub End If DoppioClick = True Threading.Thread.Sleep(200) Application.DoEvents() DoppioClick = False
ti consiglio di farti aiutare a tradure quelle due righe di codice...oppure vedi tu cosa è meglio fare
Michele
Mentre cercavo di tradurre il tuo codice mi sono imbatuto in uno strano evento chiamato e.clicks con la seguente descrizione: ottiene il numero di volte che il pulsante del mouse è stato premuto e rilasciato e con il seguente codice pensavo di gestire il doppio click:
solo che e.clicks è sempre uguale a 1 anche se io premo più volte la data... perchè?codice:private void monthCalendar1_MouseDown(object sender, MouseEventArgs e) { if (e.Clicks > 1) { //codice doppio click } else { //codice singolo click } }