그래서 나는 목록보기와 그 안에 몇 가지 항목이 있습니다. 선택한 항목의 참조를 변수에 유지하지만 선택한 항목을 변경하면 프로그램이 충돌합니다.
private void listView1_SelectedIndexChanged(object sender, System.EventArgs e)
{
var prod = (Produs)lvProduse.SelectedItems[0].Tag;
tb1.Text = prod.Denumire;
tb2.Text = prod.Pret.ToString();
tb3.Text = prod.Cantitate.ToString();
}
여기에 내 문제가 있다고 생각합니다 (Produs) lvProduse.SelectedItems [0] .Tag; . 첫 번째 항목을 선택하면 프로그램이 제대로 작동하지만 선택 항목을 변경하려고하면 System.ArgumentOutOfRangeException 오류가 발생합니다.
이벤트 핸들러에 처리되지 않은 예외가 있습니다.
일반적으로 처리되지 않은 예외는 디버거가 중단되고 무엇이 잘못되었는지 알려줍니다. 그러나 ListView.SelectedIndexChanged
이벤트에는 프로그램이 완전히 충돌하는 버그가 있습니다.
예외는 다른 항목 을 선택하면 두 가지 이벤트가 발생하기 때문입니다.
먼저, 항목이 선택되지 않았 음을 알리는 이벤트를받습니다.
그런 다음 새 항목이 선택되었음을 알리는 이벤트를받습니다.
첫 번째 이벤트에서 항목을 선택 lvProduse.SelectedItems
하지 않으면 목록이 비어 있습니다. 따라서 요소 0에 액세스하면 발생합니다.
예를 들어 항목이 선택되었는지 여부를 확인해야합니다 lvProduse.SelectedItems.Any()
(또는 lvProduse.SelectedItems.Count != 0
해당 목록이 LINQ를 지원하는지 지금 확실하지 않습니다).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다