Uwalnianie bitmapy z pictureBox

Dział z pytaniami o absolutne podstawy programowania w C# (dla początkujących).

Moderator: xxSlayeRxx

Uwalnianie bitmapy z pictureBox

Sponsor

Sponsor
 

Uwalnianie bitmapy z pictureBox

Postprzez Lski » Śr cze 17, 2015 4:12 pm

Witam,
Proszę o pomoc w rozwiązaniu następującego problemu.
Projekt to prosta przeglądarka bitmap, pobierająca listę plików z przypisanej lokalizacji, umożliwiająca usunięcie wybranej bitmapy.
Po przypisaniu kodu wyświetlającego wybraną bitmapę dla zdarzenia "listBox1_SelectedIndexChanged"
program zgłasza błąd, którego nie potrafię rozwiązać - przytoczyłem go w komentarzu.
Kod: Zaznacz cały
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string folder = @"Bitmaps";
            string[] lista = Directory.GetFiles(folder, "*.png");

            listBox1.Items.AddRange(lista);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            pictureBox1.Image = null;
            string doSkasowania = listBox1.SelectedItem.ToString();
            listBox1.Items.Remove(listBox1.SelectedItem);
            System.IO.File.Delete(doSkasowania);
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string foto = listBox1.SelectedItem.ToString(); //<- NullReferenceException was unhandled"
            Bitmap kopiaFoto = new Bitmap(foto);
            pictureBox1.Image = kopiaFoto;
        }
    }


Doczytałem w sieci że przyczyną problemu jest zablokowanie adresu bitmapy przez PictureBox.
Ja mam wrażenie że chodzi o przetrzymywanie adresu do bitmapy w zmiennej "foto", dla której debugger zgłasza błąd, jednakże wszelkie moje próby zamienienia tej zmiennej nic nie dały.
Zastosowanie "pictureBox1.Image = null;" również nie rozwiązuje problemu.


Proszę o pomoc.
Lski
New member
 
Posty: 7
Dołączył(a): So maja 09, 2015 9:55 pm

Re: Uwalnianie bitmapy z pictureBox

Postprzez xxSlayeRxx » Śr cze 17, 2015 8:25 pm

Jesli usuwasz zanaczony element to list box nie ustawia sie na 1. element (nie zaznacza go) tylko na nieistniejacy (index == -1, SelectedItem == null)

jak chcesz w ten sposob robic, to daj selected item do zmiennej tymmczasowej zmien recznie index na 0 (jesli sa jakies pozycje)

dodatowo wykonaj zawartosc index_changed jesli index >= 0
xxSlayeRxx
Member
 
Posty: 661
Dołączył(a): Pt lip 08, 2011 10:24 pm

Re: Uwalnianie bitmapy z pictureBox

Postprzez Lski » Śr cze 17, 2015 10:24 pm

Serdecznie dziękuję za odpowiedź.
Jeżeli to możliwe, chciałem prosić o uzupełnienie podanego przeze mnie kodu o opisaną funkcję bo, prawdę mówiąc, jestem na takim etapie nauki że jeszcze nie potrafię wykorzystać praktycznie podanej informacji.
Lski
New member
 
Posty: 7
Dołączył(a): So maja 09, 2015 9:55 pm

Re: Uwalnianie bitmapy z pictureBox

Sponsors

Sponsor
 


Powrót do Newbie

Kto przegląda forum

Użytkownicy przeglądający ten dział: Bing [Bot] i 2 gości