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

    [Visual Basic .net] Creazione disegno sul form

    Salve a tutti.
    Sto creando un rogramma con il quale, attraverso il click su un pulsante, si crea un disegno
    per crearlo ho utilizzato
    e.graphics.fillrectangle(brushes.colour,145,180,15 ,96)
    il fatto è che quando vado a cliccare sul pulsante il disegno si "stampa" sul pulsante e non sul form

    come posso fare in modo che il disegno appaia sul form e non sul pulsante?

  2. #2
    Perche' e si riferisce al pulsante e non al form. Devi aggiungere un Handler con AddHandler in modo che nell'evento Paint del form si disegni il rettangolo.

  3. #3
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    questo è il codice che si trova all'inizio dell'evento click
    come vedi, dopo la parola "handles" c'è scritto "me.paint", ma anche in questo modo non funziona.
    ho provato anche con mybase e myclass

  4. #4
    Scusa ma provieni dal Visual Basic 6? Il fatto che la procedura si chiami Button_Click non implica che venga eseguita quando si fa click sul pulsante: solo la clausola Handles conta davvero per il compilatore. Fidati, se scrivi e.Graphics.qualcosa in paint funziona, ho provato io:
    codice:
    Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        e.Graphics.FillRectangle(Brushes.Blue, New RectangleF(100, 100, 100, 100))
    End Sub
    produce questo risultato:

  5. #5
    grazie per l'interesse.
    il codice che mi hai postato funziona subito, cioè quando apro il programma e mi viene disegnato il rettangolo.
    In un altro momento, cioè all'evento del click sul pulsante, il rettangolo deve cambiare colore.
    come faccio?

  6. #6
    Basta usare una variabile globale di tipo Color che cambi al click del pulsante.
    Anzi, se vuoi fare una cosa ancora migliore, potresti scrivere delle classi che rappresentino varie forme da disegnare sul form e poi disegnarle tutte con un ciclo all'interno dell'evento paint: vedi qui.

  7. #7
    Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
    non riesco a richiamare l'oggetto rettangolo.
    Per cambiarne il colore devo nominarlo.
    Come faccio?
    penso che sia come il colore degli altri oggetti.
    solo che non ho la più pallida idea di come richiamarlo all'evento click del pulsante.

    io ho questo codice per il pulsante:
    Private Sub Button5_Click(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
    cosa devo cambiare per cambiare il colore al rettangolo?

    perdona la mia insistenza, ma è da poco che lavoro con vb 2005 e non so come orientarmi.

  8. #8
    Questo:
    codice:
    Private Sub Button5_Click(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
    NON E' l'evento click del pulsante. Questo invece sì:
    codice:
    Private Sub Button5_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button5.Click
    Variabile globale:
    codice:
    Public Colore As Color = Color.Blue
    Evento click:
    codice:
    Private Sub Button5_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button5.Click
      Colore = Color.Red
    End Sub
    Evento paint:
    codice:
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
      e.Graphics.FillRectangle(New SolidBrush(Colore), New RectangleF(100, 100, 100, 100))
    End Sub

  9. #9
    ho provato ma non va
    il rettangolo si disegna, ma il colore non cambia

  10. #10

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.