Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    105

    Problema con le coordinate del mouse in Visual Basic 2008

    Salve a tutti, son nuovo di qui e anche io sono un accanito programmatore.
    Ora il mio problema č:
    usando questa stringa di codice,

    e.Graphics.FillEllipse(Brushes.Black, Cursor.Position.X, Cursor.Position.Y, 5, 5)

    nella classe Paint di una PictureBox, cliccando dentro quest'ultima invece di creare un cerchio nella posizione del puntatore, lo crea pių spostato in basso a destra.
    Potrebbe essere una questione di sistema operativo (io ho vista x64)?
    Pls aiuto, non so dove sbattere la testa
    grazie

  2. #2
    m... non sapre ma io fare qualche tentativo con

    e.Graphics.FillEllipse(Brushes.Black, Cursor.Position.X, Cursor.Position.Y, 5-a, 5-b)

    a e b sono 2 valori fissi
    a determina quanto + a sx la vuoi e b quanto + in alto

    insomma una centrazione manuale

  3. #3

    Re: Problema con le coordinate del mouse in Visual Basic 2008

    Succede questo perché l'istruzione che hai usato per disegnare un'ellisse richiede un'area rettangolare che conterrā l'ellisse stessa: in questo caso, la figura verrā disegnata a partire dal punto Cursor.Position.X, Cursor.Position.Y e ( angolo in alto a sinistra del rettangolo) e dimensioni di larghezza e altezza pari a 5 - 5 (un cerchio di diametro 5).

    Se vuoi che il cursore rappresenti il centro del cerchio devi giocare con le coordinate del cursore spostandolo di una dimensione pari al raggio nelle due dimensioni.

    io farei cosė:
    codice:
    Public Class Form1
    
        Dim p As New Point
    
        Private Sub PictureBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick
            p.X = e.X
            p.Y = e.Y
            PictureBox1.Refresh()
        End Sub
    
        Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
            e.Graphics.FillEllipse(Brushes.Black, p.X - 25, p.Y - 25, 50, 50)
        End Sub
    
    End Class

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    105
    ha ok grazie, non avevo considerato questa possibilitā, anche perchč con vb 6.0 te lo centrava in automatico.

    p.s.: non č che anche in vb2008 c'č un comando per fare un cerchio (che č quello che mi interessa) partendo dal raggio?

    grazie mille

  5. #5
    No, devi usare il comando che hai appena utilizzato.

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.