Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    56

    [Vb.Net] Disegnare in una picturebox

    Ciao a tutti ho un problemino con un programma. In pratica consiste in due picturebox vicine dove l'utente, cliccando con il mouse, deve trovare le differenze, ma ho due problemi:

    - Come si fa a fare in modo che ogni qualvolta l'utente clicchi sulla picture appare un cerchietto di dimensioni ridotte? Io so che devo agire nell'evento Paint ma mettendo li il codice non so come farlo apparire nel punto in cui si clicca e ancora peggio me lo disegna subito appena apro il form. Idee?

    - Come faccio poi a intercettare le posizioni di tali cerchietti così da dire all'utente se ha azzeccato le differenze oppure no?

  2. #2
    Provo a darti queste 2 informazioni.
    - L'evento MouseDown(o MouseUp) ti permette di ottenere la posizione attuale del Mouse ....
    - Eseguendo il Refresh della PictureBox, ri-scateni l'evento Paint ....

    Facci sapere...
    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    56
    Ti ringrazio per la risposta, ma avevo già provato. Io provo ad usare il e.Graphics.DrawEllipse(....) ma se lo metto nell'evento di Mouse down mi da errore.. Cmq facendomi ragionare mi è venuta questa idea e dimmi se sbaglio:

    Le coordinate si prendono così? Oppure c'è un altro modo?
    Dim f = PictureBox1.Location

    Poi però non so come andare avanti.

  4. #4
    Ti ringrazio per la risposta, ma avevo già provato.
    Hai provato male ....

    Io provo ad usare il e.Graphics.DrawEllipse(....) ma se lo metto nell'evento di Mouse down mi da errore..
    Infatti non è li che lo devi mettere

    Cmq facendomi ragionare mi è venuta questa idea e dimmi se sbaglio:

    Le coordinate si prendono così? Oppure c'è un altro modo?
    Dim f = PictureBox1.Location
    Non è che c'è un altro modo .... c'è quello giusto e quello sbagliato .... il tuo è sbagliato.

    Innanzitutto bisogna tipizzare le variabili.
    Poi....a te serve sapere la posizione del Mouse ... non della PictureBox, quindi ...
    codice:
    Private MousePosition as Point
    
     Private Sub PictureBox_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox.MouseUp
    MousePosition=e.Location
    PictureBox.Refresh
        End Sub
    
    Private Sub PictureBox_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox.Paint
    dim x as integer=MousePosition.X
    dim y as integer=MousePosition.Y
    e.Graphics.DrawEllipse(....etc..... x,y)
        End Sub
    Facci sapere...
    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    56
    Funziona ma ha un piccolo difetto: io ad esempio punto in una parte ma il cerchietto si forma un bel pò più in basso. Poi un altro problemino: Ora disegna i cerchi e va benissimo ma come faccio a fare in modo che quando l'utente clicca sul pulsante conferma esso gli dia risposta positiva solo se i cerchi si trovano in determinate posizioni?

  6. #6
    Funziona ma ha un piccolo difetto: io ad esempio punto in una parte ma il cerchietto si forma un bel pò più in basso.
    Non è un difetto .... dipende solo da come interpreti le coordinate del Mouse ..... è ovvio che dovrai creare un Offset per centrare l'ellisse rispetto alle coordinate del Mouse.

    Poi un altro problemino: Ora disegna i cerchi e va benissimo ma come faccio a fare in modo che quando l'utente clicca sul pulsante conferma esso gli dia risposta positiva solo se i cerchi si trovano in determinate posizioni?
    Ehm ... a questo ci devi pensare tu .... non credi?
    Non è un problema di programmazione .... ma di ragionamento.

    Facci sapere...
    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    56
    Originariamente inviato da Jeremy75
    Non è un difetto .... dipende solo da come interpreti le coordinate del Mouse ..... è ovvio che dovrai creare un Offset per centrare l'ellisse rispetto alle coordinate del Mouse.
    Capisco, ci provo e ti faccio sapere se va.

    Ehm ... a questo ci devi pensare tu .... non credi?
    Non è un problema di programmazione .... ma di ragionamento.

    Facci sapere...
    Ciao
    Si capisco però a me oltre che di ragionamento sembra anche altro perchè non ho idea di come posso intercettare disegni fatti su una picturebox. Dovrei per caso fare un controllo prima che se ad esempio tu clicchi su delle coordinate allora una variabile boolean diventa 1 e così alla fine faccio il controllo che se è 1 allora ok altrimenti ha sbagliato? Contorto ma potrebbe andare, che dici?

  8. #8
    Non te ne frega niente del cerchio(in quanto disegno) .... tu hai le coordinate.

    Facci sapere...
    Ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    56
    Perfetto su questo ci sono arrivato e ho capito come fare. Però mi rimane il problema del cerchi che va un pò più in giù. Provo a mettere l'OffSet ma non mi va lo stesso. Magari, anzi molto probabilmente, sbaglio io ad utilizzare il comando OffSet ma non l'ho mai usato su una PictureBox finora...

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    56
    Ho risolto! Ti ringrazio per l'aiuto!

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.