Cambiare immagine ToolStripStatusLabel

di il
12 risposte

Cambiare immagine ToolStripStatusLabel

Da un articolo di Mattei(collaboratore di questo sito)per monitorare lo stato di connessione della rete internet ho il problema che non mi aggiorna l'immagine di connesso/disconnesso,questo il codice di mattei:

Private Shared Sub CambiaRete(ByVal sender As Object, ByVal ByVale As EventArgs)
       If NetworkInterface.GetIsNetworkAvailable() = True Then
            MessageBox.Show("Rete")
        Else
            MessageBox.Show("No Rete")
        End If
    End Sub
invece,nell'evento,ho messo le immagini connesso o disconnesso,questo il codice che ho fatto:

 Public Sub New()
        InitializeComponent()
        AddHandler NetworkChange.NetworkAddressChanged, AddressOf CambiaRete
    End Sub
 Private  Shared Sub CambiaRete(ByVal sender As Object, ByVal e As EventArgs)
        Dim slStatus As New System.Windows.Forms.ToolStripStatusLabel
        If NetworkInterface.GetIsNetworkAvailable() = True Then
            slStatus.Image = New Bitmap(Application.StartupPath("connesso.ico"))
        Else
            slStatus.Image = New Bitmap(Application.StartupPath("disconnesso.ico"))
        End If
    End Sub
    Ulteriori informazioni: Cast non valido dalla stringa "disconnesso.ico" al tipo 'Integer'.
Intercetta l'evento connesso-disconnesso ma al momento di caricare l'iimagine dà errore.
Non sono esperto e quindi non riesco a capire dove è l'errore,le icone sono nell'applicazione del progetto(non come risorse) ed i nomi sono esatti,ho capito che c'è discordanza dalla stringa al tipo intero ma non capisco dove è il nesso.

12 Risposte

  • Re: Cambiare immagine ToolStripStatusLabel

    Non ho modo di verificare, però guardando così a prima vista:

    1) Mi ricordavo che per caricare una immagine si dovesse usare Image.LoadFromFile o qualcosa del genere. Tieni conto però che quel metodo ha un bug (e non so se è stato risolto) e quindi si preferisci aprire il file con un oggetto stream, caricarlo in memoria e trasformarlo in bitmap, quando posso ti mando il codice

    2) con la riga
    Dim slStatus As New System.Windows.Forms.ToolStripStatusLabel
    hai creato l'oggetto, ma dove fai l'associazione tra l'oggetto e il tuo form ??
    Non uso ToolStripStatusLabel per cui potrei aver sparato una scemata, ma di solito gli oggetti del form, una volta creati, vanno aggiunti al form

    Sergio
  • Re: Cambiare immagine ToolStripStatusLabel

    Dalla documentazione ufficiale sembra che la classa ToolStripStatusLabel non abbia la proprietà Image. Ha invece un costruttore che accetta una Image come argomento, tipo
    Dim slStatus As New System.Windows.Forms.ToolStripStatusLabel(<oggetto Image>)
  • Re: Cambiare immagine ToolStripStatusLabel

    Per precisare, il test non è sulla "connessione della rete internet " ma solo sulla "connessione alla rete" anche se questa è solo locale.

    Comunque è tramite il contenitore <StatusStrip> che cambi l'image

    TuaStatusStrip.Items(0).Image = New Bitmap("c:\...")
  • Re: Cambiare immagine ToolStripStatusLabel

    oregon ha scritto:


    Per precisare, il test non è sulla "connessione della rete internet " ma solo sulla "connessione alla rete" anche se questa è solo locale.

    Comunque è tramite il contenitore <StatusStrip> che cambi l'image

    TuaStatusStrip.Items(0).Image = New Bitmap("c:\...")
    Niente da fare...questo è il nome(Statostrip) che ho dato a StatusStrip
    statostripoggetto.jpg
    statostripoggetto.jpg

    questo il codice cambiato con l'errore
    statostrip.jpg
    statostrip.jpg

    e questo è il ink dove ho preso spunto
    http://www.java2s.com/Code/VBAPI/System.Windows.Forms/ToolStripStatusLabelImage.htm
  • Re: Cambiare immagine ToolStripStatusLabel

    sistemista ha scritto:


    Niente da fare...questo è il nome(Statostrip) che ho dato a StatusStrip
    [...]
    questo il codice cambiato con l'errore
    Siamo sicuri che i file icona siano supportati?

    Non vedo quel formato nell'.
  • Re: Cambiare immagine ToolStripStatusLabel

    A me ha funzionato con un jpg.

    Confermi che il primo item di statoStrip sia la label che ti interessa? O è in un'altra posizione?
  • Re: Cambiare immagine ToolStripStatusLabel

    Alka ha scritto:


    sistemista ha scritto:


    Niente da fare...questo è il nome(Statostrip) che ho dato a StatusStrip
    [...]
    questo il codice cambiato con l'errore
    Siamo sicuri che i file icona siano supportati?

    Non vedo quel formato nell'.
    e si,hai proprio ragione,mi sono fatto ingannare dal fatto che potresse supportare tutti i formati.
  • Re: Cambiare immagine ToolStripStatusLabel

    oregon ha scritto:


    A me ha funzionato con un jpg.

    Confermi che il primo item di statoStrip sia la label che ti interessa? O è in un'altra posizione?
    Come sempre avevi ragione,ho messo il nome dello status trip e non quello della label,cambiato il formato da ico a jpg
    e tutto funziona a meraviglia.
    Devo imparare a documentarmi sulle proprietà e metodi etc.etc...
    Grazie di nuovo a tutti.
  • Re: Cambiare immagine ToolStripStatusLabel

    Io valuterei anche l'inclusione delle immagini all'interno del file di risorse (quello principale o uno dedicato) in modo da "incorporare" queste risorse all'eseguibile (se non sono troppo voluminose).

    Vedi la documentazione ufficiale per informazioni estese a riguardo.

    Ciao!
  • Re: Cambiare immagine ToolStripStatusLabel

    Sì, devi approfondire il metodo di "studio" e "documentazione" ... Ciao
  • Re: Cambiare immagine ToolStripStatusLabel

    Te lo sai,ti ho sempre stimato come persona e ho sempre seguiti i tuoi tuoi consigli,per me sei il mio mentore anche se lo faccio solo per mera soddisfazione personale,comunque,ti ringrazio lo stesso;in questo giorni andrò a trovare Andrea(Brontolo),ci siamo sentiti telefonicamnete ed è contento se andiamo a prendere un caffè insieme.
    Ciao e Grazie.
  • Re: Cambiare immagine ToolStripStatusLabel

    Alka ha scritto:


    Io valuterei anche l'inclusione delle immagini all'interno del file di risorse (quello principale o uno dedicato) in modo da "incorporare" queste risorse all'eseguibile (se non sono troppo voluminose).

    Vedi la documentazione ufficiale per informazioni estese a riguardo.

    Ciao!
    Grazie,ho trovato in questo forum come nel defunto masterdrive.it persone molto disponibili.
    personalmente avrei piacere di fare un Meeting, di ritrovarsi insieme e conoscersi come facevamo con il nostro defunto masterdrive.
    Grazie comunque,mi date sempre degli input costruttivi,ripeto,anche se non lo faccio ad uso business ma a me piace imparare,figurati che nel 2015 sono stato certificato Progettista di Rete e telecomunicazioni dalla Regione Toscana e oregon lo sà,quindi,mi spingo sempre oltre le mie capacità e quando non ci arrivo chiedo aiuto al forum.
    Grazie di tutto che mi date sempre della vostra sapienza che per me è oro colato.
Devi accedere o registrarti per scrivere nel forum
12 risposte