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

    VB NET - Disegni geometrici su Form

    Ciao! Magari è una banalità quella che chiedo, ma son due giorni che provo e riprovo e non ci vengo a capo.
    Sul Form disegno un'immagine cliccando sul Bottone1 e col Bottone2 vorrei che scomparisse, lasciando il Form vuoto (un'alternanza di tipo ON-OFF), ma non ci riesco!!!!!
    Grazie anticipato per l'aiuto.
    Sergio

    Ecco il codice:
    [CODE]
    Public Class Form1
    Private memorizzo_immagine As Drawing.Bitmap
    Dim A, B, C, D, E, F, G, H, I, L As Integer



    Private Sub DrawLinesPoint()
    ' Create pen.
    Dim bluePen As New Pen(Color.Blue, 2)
    A = 50 : B = 50 : C = 300 : D = 50 : E = 300 : F = 200 : G = 50 : H = 200 : I = 50 : L = 50
    Dim points As Point() = {New Point(A, B), New Point(C, D), New Point(E, F), New Point(G, H), New Point(I, L)} ' creo immagine
    memorizzo_immagine = New Bitmap(Me.ClientSize.Width, Me.ClientSize.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb )
    Dim immagine As Graphics = Graphics.FromImage(memorizzo_immagine)
    immagine.DrawLines(bluePen, points)
    Me.Invalidate()
    End Sub

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    If Not memorizzo_immagine Is Nothing Then
    e.Graphics.DrawImage(memorizzo_immagine, 0, 0)
    End If
    End Sub


    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    DrawLinesPoint()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    'Cosa devo scrivere qui per far scomparire il rettangolo e avere il Form vuoto?
    'L'immagine deve però riapparire cliccando su Button1

    End Sub
    End Class

    [CODE]

  2. #2
    intanto magari chiudi il tag code in modo che si legga meglio. Soluzione stupida può essere che invece di disegnare direttamente sulla form disegni su un panel o un oggetto bitmap per poi nasconderlo e basta. Oppure ridisegni le stesse linee utilizzando il colore di sfondo.

    Tanto per
    codice:
     Dim A, B, C, D, E, F, G, H, I, L As Integer
    sai che l'unica "variabile" di tipo integer è la l, le altre sono di tipo variant ne?
    -----
    101110101011101111100000
    -----

  3. #3
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    @xam85reBanned
    A parte che il tipo Variant in VB.NET non esiste (semmai esiste Object), credo che siano tutte di tipo Integer (ma potrei anche sbagliare).

    @sergiobarbi
    Direi che la soluzione più semplice e più veloce da realizzare è quella di ridisegnare tutto con i colori dello sfondo: basta che alla routine DrawLinesPoint() aggiungi un parametro di tipo Color e poi fai così:
    codice:
    Dim bluePen As New Pen(NomeParametroDiTipoColor, 2)
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  4. #4
    Originariamente inviato da ShaleN
    @xam85reBanned
    A parte che il tipo Variant in VB.NET non esiste (semmai esiste Object), credo che siano tutte di tipo Integer (ma potrei anche sbagliare).

    @sergiobarbi
    Direi che la soluzione più semplice e più veloce da realizzare è quella di ridisegnare tutto con i colori dello sfondo: basta che alla routine DrawLinesPoint() aggiungi un parametro di tipo Color e poi fai così:
    codice:
    Dim bluePen As New Pen(NomeParametroDiTipoColor, 2)
    si volevodire Object. Sono sicuro, per farle inline dello stesso tipo è:
    codice:
     dim A as Integre, B as Integer etc
    e come ho scritto prima concordo sul ridisegnare del colore di sfondo
    -----
    101110101011101111100000
    -----

  5. #5
    Ciao ragazzi, scusatemi ma... in realtà non ho capito bene quello che devo inserire in Button2... Ho capito che posso usare Panel, ma preferirei disegnare sul Form e usare come "cancellino" il Button2. Potete aiutarmi?
    Sergio

  6. #6
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,538
    metti memorizzo_immagine = Nothing e invalidi il form (Me.Invalidate()), quando viene ridisegnato la condizione è = False e memorizzo_immagine non viene disegnato ottenendo il form pulito.


  7. #7
    Grazie U235!
    Era proprio quello he cercavo! Sei grande!

  8. #8
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,538

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.