2013-03-23 6 views
3

SQL 데이터베이스에 의해 채워진 ListView이 있는데 행을 선택하고 편집 단추를 클릭하면 값을 편집 할 수 있기를 원합니다.C# Windows Forms ListView 선택한 행 값

내가 선택한 행의 값이 텍스트 상자에 설정해야합니다 "편집"버튼을 클릭,하지만 난이 오류를 얻을 때 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다." 왜 아니다 이게 효과가 있니?

private void btnEdit_Click(object sender, EventArgs e) 
    { 
     this.txtid.Text = lvBrands.SelectedItems["id"].Text.ToString(); 
     this.txtName.Text = lvBrands.SelectedItems["name"].Text.ToString(); 

    } 
+0

메서드에서 참조 된 모든 개체의 값을 살펴 보았습니까? (그들 중 적어도 하나는 null입니다) – Rob

+0

예 .. 그들 중 bith는 null입니다 ...하지만 왜? 또한 컬럼 이름 대신 [0] 인덱스를 사용하려고했습니다. stil이 작동하지 않습니다. – n3bi0s

+0

솔루션의 가능성이있는 경우 lvBrands를 시작하는 코드를 첨부해야한다고 생각합니다. 편집 : 실제로 나는 중단 점을 넣고 선택한 항목의 정확한 텍스트가'id'와'name'인지 확인하십시오. ListView가 보고서 모드 (예 : 격자 모양) 인 경우 – Sayse

답변

3

ListView가 보고서 모드 (예 : 눈금 모양) 인 경우 SubItems 속성이 필요합니다. lvBrands.SelectedItems은 목록보기에서 각 항목을 가져옵니다. SubItems는 열을 가져옵니다. 따라서 lvBrands.SelectedItems[0].SubItems[0]은 두 번째 열 값입니다.