Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    27

    Vb 2010 - Resettare Picturebox Dopo Inserimento E Salvataggio

    Ciao ragazzi,
    eccomi di nuovo di fronte ad un problema :

    praticamente dopo che ho caricato la mia foto nella picturebox, e i dati nelle textbox, se voglio inserire dei dati new clicco sul bottone nuovo e lui mi resetta le textbox ma non la foto, non so come poter gestire il reset dell'immagine nella picturebox

    salvataggio dati :
    codice:
     Private Sub cmdSalva_Click(sender As System.Object, e As System.EventArgs) Handles cmdSalva.Click                 
    ' Preparazione del salvataggio dei dati:         
    ' vengono cancellati eventuali spazi vuoti all'inizio o alla fine del testo nei TextBox e         ' i dati vengono trascritti in lettere maiuscole:         
    txtNome.Text = txtNome.Text.Trim.ToUpper         
    txtClassificazione.Text = txtClassificazione.Text.Trim.ToUpper         
    txtFamiglia.Text = txtFamiglia.Text.Trim.ToUpper         txtOrdine.Text = txtOrdine.Text.Trim.ToUpper         txtClasse.Text = txtClasse.Text.Trim.ToUpper         txtDivisione.Text = txtDivisione.Text.Trim         txtFusto.Text = txtFusto.Text.Trim.ToUpper         txtFoglia.Text = txtFoglia.Text.Trim.ToUpper         txtAltezza.Text = txtAltezza.Text.Trim.ToUpper         txtFiori.Text = txtFiori.Text.Trim.ToUpper         txtFioritura.Text = txtFioritura.Text.Trim         txtHabitat.Text = txtHabitat.Text.Trim.ToUpper         txtCaratteristiche.Text = txtCaratteristiche.Text.Trim.ToUpper         txtNote.Text = txtNote.Text.Trim.ToUpper         ' Messaggio di conferma dei dati, prima del loro salvataggio:         Dim TestoDiConferma As String = txtNome.Text & vbCrLf         TestoDiConferma &= "Classificazione: " & txtClassificazione.Text & vbCrLf         TestoDiConferma &= "Famiglia: " & txtFamiglia.Text & vbCrLf         TestoDiConferma &= "Ordine: " & txtOrdine.Text & vbCrLf         TestoDiConferma &= "Classe: " & txtClasse.Text & vbCrLf         TestoDiConferma &= "Divisione: " & txtDivisione.Text & vbCrLf         TestoDiConferma &= "Fusto: " & txtFusto.Text & vbCrLf         TestoDiConferma &= "Foglia: " & txtFoglia.Text & vbCrLf         TestoDiConferma &= "Altezza: " & txtAltezza.Text & vbCrLf         TestoDiConferma &= "Fiori: " & txtFiori.Text & vbCrLf         TestoDiConferma &= "Fioritura: " & txtFioritura.Text & vbCrLf         TestoDiConferma &= "Habitat: " & txtHabitat.Text & vbCrLf         TestoDiConferma &= "Caratteristiche: " & txtCaratteristiche.Text & vbCrLf         TestoDiConferma &= "Note: " & txtNote.Text & vbCrLf           If MsgBox(TestoDiConferma, MessageBoxButtons.YesNo + MessageBoxIcon.Question, "CONFERMI QUESTI DATI?") = MsgBoxResult.No Then             ' Se l'utente non conferma i dati, esci della procedura di salvataggio:             Exit Sub         End If          ' Se l'utente conferma i dati, si avvia la query InserimentoDati, indicando i valori da inserire in ogni parametro della query:         Form1.DatiPianteTableAdapter.InserimentoDati(Me.txtNome.Text, Me.txtClassificazione.Text, Me.txtFamiglia.Text, _                                                      Me.txtOrdine.Text, Me.txtClasse.Text, Me.txtDivisione.Text, Me.txtFusto.Text, _                                                      Me.txtFoglia.Text, Me.txtAltezza.Text, Me.txtFiori.Text, Me.txtFioritura.Text, _                                                      Me.txtHabitat.Text, Me.txtCaratteristiche.Text, Me.txtNote.Text, ConvertImage(Me.FotoPictureBox.Image))                                                               ' e più precisamente salvati nella tabella DatiPiante:         Form1.DatiPianteTableAdapter.FillNome2(Form1.DbDataSet.DatiPiante)         ' Disabilita il pulsante per il salvataggio dei dati:         cmdSalva.Enabled = False         cmdNuovo.Enabled = Enabled         Exit Sub     End Sub
    quando spingo il pulsante nuovo ho messo questo codice per resettare le textbox :
    codice:
    Private Sub cmdNuovo_Click(sender As System.Object, e As System.EventArgs) Handles cmdNuovo.Click         
    txtNome.Text = ""        
     txtClassificazione.Text = ""         txtFamiglia.Text = ""         txtOrdine.Text = ""         txtClasse.Text = ""         txtDivisione.Text = ""         txtFusto.Text = ""         txtFoglia.Text = ""         txtAltezza.Text = ""         txtFiori.Text = ""         txtFioritura.Text = ""         txtHabitat.Text = ""         txtCaratteristiche.Text = ""         txtNote.Text = ""           cmdInsImmagine.Visible = True         GroupBox1.Visible = True         GroupBox2.Visible = True         For Each CasellaDiTesto As Control In Me.Controls             ' ricerca i TextBox nel form e ne cancella il contenuto:             If TypeOf CasellaDiTesto Is TextBox Then CasellaDiTesto.Text = ""         
    Next         
    ' Disbilita questi pulsanti:         
    cmdNuovo.Enabled = False         
    cmdSalva.Enabled = Enabled        
     cmdInsImmagine.Visible = True         
    ' Porta il cursore sul primo TextBox:        
     txtNome.Focus()     End Sub
    Mi da anche errore se salvo il tutto senza aver inserito una foto, mi dice che non puo contenere valori nulli eppure sulle colonne del db valori nulli è messo su si..

    Grazie per le Risposte
    Un Saluto!!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Hai provato a impostare la proprietà Image del controllo PictureBox a Nothing?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    27
    Ciao Master alka!!
    Grandissimo sempre tu mi aiuti!!

    Ho fatto come mi hai detto è funziona evviva, ho messo

    FotoPictureBox.Image = nothing

    insieme al cmdnuovo nel punto in cui resettavo praticamente le textbox.

    Pero ce ancora un problema , se salvo dei dati senza inserire una foto mi genera questo errore a questa riga :

    codice:
    myImage.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
    Riferimento a un oggetto non impostato su un'istanza di oggetto.

    perchè?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Salvi dei dati ... ma non ci sono i dati ...

    In questa riga

    myImage.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)

    cosa è myImage e cosa mstream?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    27
    Ciao oregon!
    anche tu mi rispondi sempre

    ecco il codice che ho usato :
    codice:
    Private Function ConvertImage(ByVal myImage As Image) As Byte()         
    Dim mstream As New MemoryStream         
    myImage.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)         
    Dim myBytes(mstream.Length - 1) As Byte         
    mstream.Position = 0         
    mstream.Read(myBytes, 0, mstream.Length)         
    Return myBytes       
    End Function
    e poi nell'evento del cmdsave ho aggiunto :

    codice:
    Form1.DatiPianteTableAdapter.InserimentoDati(ConvertImage(Me.FotoPictureBox.Image))

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Se

    Me.FotoPictureBox.Image

    è nothing, allora avrai quell'errore ...

    Del resto, cosa salvi dell'immagine se non c'è un'immagine?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    27
    Si infatti hai ragione,

    pensi sia utile impostare allora un immagine di default nella picturebox?

    cosi ha qualcosa da salvare e non dovrebbe generare un errore.
    che ne pensi?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    No, penso che tu debba "controllare" che ci sia qualcosa da salvare all'interno della tua funzione ed eseguire un immediato Return se non c'è l'immagine ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da vbpro
    pensi sia utile impostare allora un immagine di default nella picturebox?
    cosi ha qualcosa da salvare e non dovrebbe generare un errore.
    Non sarebbe meglio semplicemente evitare di salvare l'immagine se non c'è, controllando prima questa condizione?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    27
    allora potrei mettere un if che se ce l'immagine va alla procedura di salvataggio con l'immagine se non ce mi salva solo i dati :

    codice:
    if FotoPictureBox.Image = Nothing 
    Form1.DatiPianteTableAdapter.InserimentoDati(Me.txtNome.Text, Me.txtClassificazione.Text, Me.txtFamiglia.Text, Me.txtOrdine.Text, Me.txtClasse.Text, Me.txtDivisione.Text, Me.txtFusto.Text, Me.txtFoglia.Text, Me.txtAltezza.Text, Me.txtFiori.Text, Me.txtFioritura.Text, Me.txtHabitat.Text, Me.txtCaratteristiche.Text, Me.txtNote.Text)
    then
    Form1.DatiPianteTableAdapter.InserimentoDati(Me.txtNome.Text, Me.txtClassificazione.Text, Me.txtFamiglia.Text,  Me.txtOrdine.Text, Me.txtClasse.Text, Me.txtDivisione.Text, Me.txtFusto.Text,
    Me.txtFoglia.Text, Me.txtAltezza.Text, Me.txtFiori.Text, Me.txtFioritura.Text,
    Me.txtHabitat.Text, Me.txtCaratteristiche.Text, Me.txtNote.Text, ConvertImage(Me.FotoPictureBox.Image))

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 © 2026 vBulletin Solutions, Inc. All rights reserved.