ListBox i wyświetlanie zawartości plików

0

Witam, mam problem z listBox'em. Mianowicie, dodaje pliki do list boxa:

 private void ButtonDodaj_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Multiselect = false;
            dialog.ShowDialog();
            if (dialog.FileName != "")
            {
                string nazwa = dialog.FileName;
                textEditOtworz.Text = nazwa;
                StreamReader f = new StreamReader(dialog.FileName);
                listBoxControl1.Items.Add(nazwa);
                if (nazwa.Substring((nazwa.Length) - 3) == "txt")
                    memoEditZawartoscWe.Text = f.ReadToEnd();
                f.Close();
            }
        } 

Po dodaniu pliku do listy chciałbym wyswietlić jego zawartość w memoEditZawartoscWe po kliknieciu na dany element listy.

Jakie sugestie?

0

Jak rozumiem przy podanym wyżej kodzie zawartość nie wyświetla się ?

Taka jedna uwaga miast SubStringa przy badaniu rozszerzenia pliku ja bym zastosował zwykły .Contains() wg mnie bezpieczniejsze rozwiązanie.

0

Pewnie masz rację :)
Dzięki za radę z tym SubString'iem. Ale skupmy się na tym wyświetlanie, dokładnie, tekst nie wyświetla się :/

0

W twoim kodzie w ogóle nie sprawdzasz czy zatwierdzono przycisk OK w opendialog. Tutaj masz kod i to działa!:

 
OpenFileDialog dialog = new OpenFileDialog();
dialog.Multiselect = false;

DialogResult result = dialog.ShowDialog();

if (result == DialogResult.OK)
{
  string nazwa = dialog.FileName;
                textEditOtworz.Text = nazwa;
                StreamReader f = new StreamReader(dialog.FileName);
                listBoxControl1.Items.Add(nazwa);
                if (nazwa.Substring((nazwa.Length) - 3) == "txt")
                    memoEditZawartoscWe.Text = f.ReadToEnd();
                f.Close();
}
0

Ok, tylko teraz jak dodam pliki to po zaznaczeniu dowolnego obiektu z listboxa otiwera sie okno dodawania pliku :/ nie do końca to miałem na myśli.
Chodzi mi o to, że jak zaznacze dany obiekt na liście listBoxControl to w memoEdit wyświetli się jego zawartość.

To załóżmy że mam tylko listBoxContorl i memoEdit, i wcześniej obsłużony przycisk dodawania plików. Jakiego eventa powinienem użyć że zrealizować moje założenie? Możecie wrzucić jakiś przykład lub skierować mnie na taki?

0

No to trochę namieszałeś.
Oddzielny event ustaw do dodawania plików na listę a oddzielny do wyświetlania zawartości.

użyj List Boxowego eventa SelectedIndexChanged

0

Dzięki, zaraz spróbuję :)
Jednak moim zdaniem nie namieszałem, gdyż poniżej kodu podane było pytanie :)

0

Udało się :)

         private void listBoxControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string SciezkaPliku;
            if (listBoxControl1.SelectedIndex != -1)
            {
                SciezkaPliku = listBoxControl1.SelectedItem.ToString();
                StreamReader plik = new StreamReader(SciezkaPliku);
                memoEditZawartoscWe.Text = plik.ReadToEnd();
            }   
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1