Změna obrázku v Picture bloku po kliknutí [GDI+]   zodpovězená otázka

VB.NET, WinForms

Zdravím,

potřeboval bych poradit. V ImageListu mám několik obrázků, jeden z nich potřebuji nahrát do picture bloku po kliknutí na něj, nevím kde mám chybu protože vždy když to nějak zkusím přepsat chybu to vyhodí. Můj zdrojový kód vypadá takhle:

Dim promenna As String
    Sub vykreslit(ByVal e As System.Windows.Forms.PaintEventArgs, ByVal i As Integer)
        With e.Graphics
            .Clear(Color.White)
            .DrawImage(ImageList1.Images(i), 0, 0)
        End With
    End Sub

    Sub zmena(ByVal e As System.Windows.Forms.PaintEventArgs)
        Dim dlg As New Dialog1()
        If dlg.ShowDialog() = DialogResult.OK Then
            promenna = dlg.ComboBox1.Text
        End If
        If promenna = "a" Then
            vykreslit(e, 0)
        End If
    End Sub

Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
        
        zmena(e)
End Sub
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Při volání zmena(e) se snažíte předat hodnotu v proměnné e, která je typu EventArgs (u události Click), do parametru typu System.Windows.Forms.PaintEventArgs.

To by vám v C#, a hádám, že ve VB.NET při zapnutém Option Strict On, nemělo jít ani zkompilovat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Netuším k čemu je v tom kódu nějakej dialog a ComboBox, ani co chcete dělat s GDI+.

K nastavení obrázku do kontrolu PictureBox stačí tento řádek:

PictureBox1.Image = ImageList1.Images(0)
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ok, nakonec jsem použil tento způsob, akorát nevím jak v tom picture boxu obrázek zobrazit když už tam nějaký je, resp. potřebuji jeden obrázek smazat a nahrát tam druhý. Můžete mi prosím poradit jak na to?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Normálně hodnotu té vlastnosti Image přenastavíte na jiný obrázek, tím bude PictureBox zobrazovat jiný obrázek. Tam jako není potřeba něco mazat a přidávat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback