2013-03-23 17 views
3

我有一個ListView填充由SQL數據庫,並希望能夠編輯值,一旦我選擇一行,然後單擊編輯按鈕。C#Windows窗體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

你看過方法中引用的所有對象的值嗎? (至少其中一個爲空) – Rob 2013-03-23 15:38:18

+0

是的..他們的兄弟是空的......但爲什麼?我也嘗試使用[0]索引,而不是列名... stil不起作用 – n3bi0s 2013-03-23 15:40:58

+0

我認爲你需要附加啓動你的lvBrands的代碼,如果解決方案的任何機會編輯:其實我認爲如果你只是如果你的ListView處於報告模式(即它看起來像一個網格),那麼你將需要SubItems屬性,並且確保選定項目中的確切文本是'id'和'name',你可能會找到你的答案 – Sayse 2013-03-23 15:43:01

回答

3

如果您的ListView處於報告模式(即它看起來像一個網格),那麼您將需要SubItems屬性。 lvBrands.SelectedItems讓你在列表視圖中的每個項目 - SubItems讓你的列。所以lvBrands.SelectedItems[0].SubItems[0]是第二列值。