Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [c# 2010 winform] Eventi monthcalendar

    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?

  2. #2
    Sapete per caso un qualche sistema per calcolare il numero di click?
    sapete aiutarmi?!?
    grazie...

  3. #3
    Originariamente inviato da 91andre91
    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:
    codice:
        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
    ho inserito due note dove dev'essere inserito il codice per i due eventi

    naturalmente il resto non va toccato, solo per personalizzare il ritardo tra il click e doubleclick, variando Thread.Sleep(..)
    Michele

  4. #4
    Grazie per la tua risposta, ma il codice da te postato funziona anche in c#? ovviamente riportando le varie modifiche di sintassi...

  5. #5
    non conosco il C#...essendoci solo comandi base, penso di si! è da provare a tradurlo e mi saprai dire!
    Michele

  6. #6
    non funziona grazie lo stesso...

  7. #7
    Posta il tuo codice e vediamo dov'è il problema...
    Chi non cerca trova.

  8. #8
    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...
    codice:
     
    private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
    {
                if (DoubleClick == false)
                {
                    //codice doppio click
                }
                else
                {
                    // codice singolo click
                }
    }
    l'avviso è:
    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'

  9. #9
    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:

    codice:
            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
    DoppioClick è una variabile Static (che tra l'altro non hai dichiarato) è non ha bisogno di tradurre il nome in DoubleClick

    ti consiglio di farti aiutare a tradure quelle due righe di codice...oppure vedi tu cosa è meglio fare
    Michele

  10. #10
    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:
    codice:
    private void monthCalendar1_MouseDown(object sender, MouseEventArgs e)
    {
                if (e.Clicks > 1)
                {
                    //codice doppio click
                }
                else
                {
                    //codice singolo click
                }
    }
    solo che e.clicks è sempre uguale a 1 anche se io premo più volte la data... perchè?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.