Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [vb.net] Problemi con timer.stop()

    Ciao a tutti
    Sono nuovo e sono anche alle prime armi con vb.net.
    Scrivo perchè mi sono bloccato in un punto e non riesco a capire dove sbaglio (magari mi perdo in un bicchier d'acqua).
    In sostanza sto cercando di registrare le coordinate del mouse in un punto preciso, scrivendole in 2 textbox. Ho inserito un command button che attiva un timer, il quale poi dovrebbe fermarsi al click del mouse. Il problema è che mi si blocca subito e non capisco se è perchè ho sbagliato a impostare l'evento mouseclick o se c'è qualche errore più grossolano di fondo. COmunque questo è il codice:

    codice:
    Private Sub cmdclick_MouseUp(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdclick.Click
            Me.tmrcoo.Enabled = True
    End Sub
    codice:
    Private Sub tmrcoo_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tmrcoo.Tick
            With Me
                .modx.Text = MousePosition.X
                .mody.Text = MousePosition.Y
                If MouseButtons.Left Then
                    .tmrcoo.Stop()
                End If
            End With
    End Sub
    dove: cmdclick è il pulsante di avvio
    tmrcoo è il timer
    modx è il textbox della coordinata x
    mody è il textbox della coordinata y
    il timer ha un intervallo di 1 ms in modo da non perdere per strada i movimenti del mouse.
    Senza il blocco if del timer funziona tutto come vorrei, il problema insomma è fermare in modo coerente il tutto.
    Vi ringrazio in anticipo per l'attenzione

    edit: scusate per errore l'ho messo qui invece che nella sezione di visual basic. Spostate pure

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Stop è una cosa Enabled è un'altra ... può darsi che tu faccia confusione in questo senso.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3

    Moderazione

    VB.NET ha una sezione dedicata, sposto.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Nell'evento Click del CommandButton dovresti avviare il timer, così

    codice:
    tuotimer.enabled = true
    avendo precedentemente impostato le proprietà del Timer (es. Interval), e non nell'evento del tuo cmdclick

    Tuttavia non capisco la necessità di ricorrere al controllo Timer per ricavare la posizione del mouse in un determinato momento.
    Chiarisci meglio la questione.

  5. #5
    Originariamente inviato da MdE2005
    Nell'evento Click del CommandButton dovresti avviare il timer, così

    codice:
    tuotimer.enabled = true
    avendo precedentemente impostato le proprietà del Timer (es. Interval), e non nell'evento del tuo cmdclick

    Tuttavia non capisco la necessità di ricorrere al controllo Timer per ricavare la posizione del mouse in un determinato momento.
    Chiarisci meglio la questione.
    Hai ragione... mi ero incaponito sull'utilizzo del timer quando non era necessario. ho risolto in questo modo

    codice:
    Private Sub cmdclick_MouseUp(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdclick.Click
            avviato = True
    End Sub
    codice:
    Private Sub Form1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
            With Me
                If avviato = True Then
                    .modx.Text = MousePosition.X
                    .mody.Text = MousePosition.Y
                    avviato = False
                End If
            End With
    End Sub

  6. #6
    Originariamente inviato da thebeginner
    Hai ragione...
    I know..


    Una domanda: perchè utilizzi l'evento MouseUp del CommandButton anzichè l'evento Click? C'è un motivo particolare? Ovviamente i due eventi sono simili ma non uguali.

  7. #7
    Originariamente inviato da MdE2005
    I know..


    Una domanda: perchè utilizzi l'evento MouseUp del CommandButton anzichè l'evento Click? C'è un motivo particolare? Ovviamente i due eventi sono simili ma non uguali.
    Così sono sicuro che il tutto si avvii nel momento in cui rilascio il pulsante del mouse ed è una piccola precauzione in caso di ripensamenti dell'ultimo millesimo di secondo (si lo so è un motivo un po' strano, ma un sacco di volte mi è capitato di ripensarci appena cliccavo sui pulsanti )

  8. #8
    Originariamente inviato da thebeginner
    Così sono sicuro che il tutto si avvii nel momento in cui rilascio il pulsante del mouse ed è una piccola precauzione in caso di ripensamenti dell'ultimo millesimo di secondo (si lo so è un motivo un po' strano, ma un sacco di volte mi è capitato di ripensarci appena cliccavo sui pulsanti )
    Ok, era solo una curiosità e volevo assicurarmi che conoscessi la differenza con l'altro evento.

    Ciao

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.