Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    172

    [vb.net] Problema con disegni creati in una picturebox

    Ho una picturebox con scrollbar,Praticamente muovo l'immagine!!
    Il mio problema e che quando disegno una linea o un cerchio ecc, se muovo l'immagine che c'è dentro la picturebox cancella man mano che vado a spostare,dove sto sbagliando?

    Mi potete dare una mano?
    Grazie!!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    172
    Cavolo non riesco a capire,perche creando una linea con questo codice qui sotto!
    non riesco a salvare la linea e se minimizzo il form e poi la riapro la linea non c'è piu'?
    dim moPen As Pen

    moPen = New Pen(Color.Blue, 30)
    Me.CreateGraphics.DrawLine(moPen, mlClickX, mlClickY, e.X, e.Y)


    Grazie!!!

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Re: [vb.net] Problema con disegni creati in una picturebox

    Originariamente inviato da spinter
    Ho una picturebox con scrollbar,Praticamente muovo l'immagine!!
    Il mio problema e che quando disegno una linea o un cerchio ecc, se muovo l'immagine che c'è dentro la picturebox cancella man mano che vado a spostare,dove sto sbagliando?
    Tutto ciò che vedi nel controllo in questione viene tracciato da un apposito metodo, richiamato quando Windows invia il messaggio che suggerisce al controllo stesso di ridisegnare se stesso, ad esempio perché un'altra finestra si è parzialmente sovrapposta, o perché è stato ridotto a icona e ripristinato e così via.

    Quando tu disegni all'interno del controllo, gli elementi appaiono ma non appena la routine sopra menzionata entra in funzione, le tue modifiche vengono annullate poiché il controllo provvede a ridisegnarsi (e nulla sa dei tracciamenti che hai effettuato tu).

    Ciò che devi fare è creare un controllo personalizzato, ad esempio ereditando da Control, ridefinire il metodo che provvede a tracciare i contenuti del controllo stesso inserendo le istruzioni di disegno, affinché vengano sempre eseguite quando l'aspetto grafico del controllo deve essere ripristinato.

    Consulta MSDN in merito alle classi menzionate per saperne di più, oppure cerca su Google qualche articolo in proposito, poiché la trattazione potrebbe essere molto lunga.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    in un breve esempio che ho letto per caso su internet si provvedeva, dopo la creazione del disegno, a salvare la nuova immagine che quindi andava a trovarsi nella picturebox e a sostituirla con quella "di base" che veniva caricata la prima volta.... potrebbe anche essere uno spunto..



    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da Santino83_02
    in un breve esempio che ho letto per caso su internet si provvedeva, dopo la creazione del disegno, a salvare la nuova immagine che quindi andava a trovarsi nella picturebox e a sostituirla con quella "di base" che veniva caricata la prima volta.... potrebbe anche essere uno spunto..
    Questo comporta il dover eseguire operazioni in più oltre al tracciamento, cioè andare a salvare l'immagine, modificarla e andare a ripristinarla sul controllo affinché la visualizzi modificata ogni volta.

    In questo caso, meglio procedere definendo sempre un controllo personalizzato e - quando è necessario aggiornare la grafica - provvedere a disegnare nell'area del controllo l'immagine salvata in un campo della classe stessa, usata come buffer offline, in sostanza implementando qualcosa del tutto simile al cosiddetto double buffering.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6

    Re: [vb.net] Problema con disegni creati in una picturebox

    Originariamente inviato da spinter
    Ho una picturebox con scrollbar,Praticamente muovo l'immagine!!
    Il mio problema e che quando disegno una linea o un cerchio ecc, se muovo l'immagine che c'è dentro la picturebox cancella man mano che vado a spostare,dove sto sbagliando?

    Mi potete dare una mano?
    Grazie!!!!
    Dico una "belinata" ! (...non mastico .Net )

    Non esiste una proprieta' AutoRedraw da settare a True ?
    IceCube_HT (VB6 fan Club)

  7. #7
    Originariamente inviato da alka
    In questo caso, meglio procedere definendo sempre un controllo personalizzato e - quando è necessario aggiornare la grafica - provvedere a disegnare nell'area del controllo l'immagine salvata in un campo della classe stessa, usata come buffer offline, in sostanza implementando qualcosa del tutto simile al cosiddetto double buffering.
    esatto, quello che intendevo (double buffering a parte)
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    172
    Scusate e grazie tante per la risposta ero via da casa per lavoro per questo rispondo adesso!!


    Il problema e che devo creare queste linee con un evento del mouse o anche un bottone,ho visto che se metto in:

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint





    Me le crea alla partenza ma non riesco a capire come crearle con il mouse!!


    Ho letto che con vb6 bastava mettere la picturebox in AutoRedraw ma con vb2005.net non posso!!!


    Grazie!!!

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da spinter
    Me le crea alla partenza ma non riesco a capire come crearle con il mouse!!
    Qual è il problema? Intercetti gli eventi di movimento e clic del mouse, memorizzi le informazioni in un'apposita struttura e riutilizzi tali informazioni quando il controllo deve essere ridisegnato tracciando al suo interno le figure necessarie.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    172
    mmm non capisco
    potresti farmi un esempio perfavore?

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.