Wątek przeniesiony 2017-03-13 12:34 z C# i .NET przez ŁF.

Problem z ListView (WinForm)

0

Szanowni forumowicze,
dopiero uczę się programowania. Mam obiekt ListView i chciałbym żeby teskt z item'u aktualnie zaznaczonego wyświetlał mi się w label'u obok.
Utworzyłem więc taki oto event (załączony obrazek).
Aplikacja działa tak, że przy pierwszym kliknięciu w którykolwiek item, tekst w label1 zmienia się prawidłowo na tekst danego itemu. Natomiast przy drugim kliknięciu na którykolwiek item wywala mi program.
title
Będę wdzięczny za pomoc.

0

Jak mamy Ci pomóc, skoro nie podałeś treści wywałki?

0

Sorka, już zedytowałem pierwszy post i wrzuciłem screena.

0

jeśli się dopiero uczysz to może zacznij tą naukę od poznania adresu dokumentacji do języka i sposobu używania gugla

https://msdn.microsoft.com/en-us/library/system.windows.forms.listview.itemselectionchanged(v=vs.110).aspx

0

Trochę posiedziałem już w dokumentacji nad tym tematem, ale jestem początkujący i przyznaję, że nie wszystko jest dla mnie jasne. Ciągle nie wiem jak rozwiązać ten problem, dlatego napisałem tu na forum. Najlepiej uczę się na przykładach i liczyłem, że może ktoś pomoże.
Może powinienem użyć inny event?

3

no ale przecież masz tam przykład, który pokazuje dokładnie to co chcesz osiągnąć - pobrać tekst klikniętego elementu

private void ListView1_ItemSelectionChanged(Object sender, ListViewItemSelectionChangedEventArgs e) {

System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "IsSelected", e.IsSelected );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Item", e.Item );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "ItemIndex", e.ItemIndex );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "ItemSelectionChanged Event" );
}

wystarczy dodać do kodu i poklikać trochę aby zobaczyć co pokaże

0

Dodałem przytoczony przykład, odpaliłem i zrozumiałem o co chodzi :) Dzięki!
Jakby ktoś w przyszłości odkopał ten wątek i potrzebował rozwiązania to zrobiłem coś takiego i działa jak należy:

private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            if (e.IsSelected)
                label1.Text = listView1.SelectedItems[0].Text;
        }

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