2012-09-26 77 views
2

我是Web開發人員,正在開發WinForms中的一部分項目。所以我的問題可能是一個基本問題。試着忍受它。在列表視圖中選擇一行

我在我的頁面上有兩個列表視圖和一個適用於兩者的刪除按鈕。

問題。

  1. 我無法在列表視圖中選擇一行,當我運行我的程序時,可能是它需要的某些屬性?
  2. 如果我能夠選擇要檢測哪個列表視圖項目的行,那麼我該怎麼做?
  3. 我有三列,並使用下面的代碼綁定了數據。

    listView1.Columns.Add("ID",20); 
        listView1.Columns.Add("Name",40); 
        listView1.Columns.Add("Mobile",40); 
    
    
        foreach (var item in dataList) 
        { 
         newItem = new ListViewItem(); 
         newItem.SubItems.Add(item.ID.ToString()); 
         newItem.SubItems.Add(item.Name); 
         newItem.SubItems.Add(item.Mobile.ToString()); 
         listView1.Items.Add(newItem); 
        } 
    

ID欄留空和數據開始在這些意義上綁定。

ID Name Mobile 
    1 abc 
    2 xyz 

那麼我該如何正確顯示數據呢?

  1. 最後,我想用我的ID列刪除數據。所以如果我給width=0,這是隱藏一列的最好方法嗎?

回答

6
  1. 請參閱ListView.FullRowSelect屬性。
  2. 請參閱ListView.SelectedItems財產。請注意,默認ListView允許多選。
  3. 通過構造函數設置項目文本:newItem = new ListViewItem(item.ID.ToString());,然後添加其餘子項目(item.ID除外)。
  4. 如果要刪除列,只需從列集合中刪除它。
+0

感謝您的回答。 point no 1,3 has been resolved.on point no 2.我需要一些輸入,這就是我在做什麼if(listView1.SelectedItems.Count> 0) { foreach(var item in listView1.SelectedItems) { //如何提取隱藏列的值ie.ID //多選擇選項設置爲假 } } – ankur

+0

@ankur:不存儲值,你不想顯示*視圖*項目。如果你只是想稍後使用'item.ID'而不顯示它,則將'ListViewItem'綁定到數據項:'newItem.Tag = item'。稍後,您可以通過'((YourDataItemType)item.Tag).ID'獲取它。 – Dennis

+0

帶標籤的方法很漂亮,但我無法獲得價值。我也經歷了很多刪除具有多列的選定行的例子,似乎沒有什麼可以做的。我隱藏的身份證實際上用於同樣的事情。所以你可以幫我在這個我的代碼刪除button.foreach(ListViewItem項目listView2.SelectedItems) { var id =((int)item.Tag).ID;//此行給出錯誤 listView2.Items。除去項目); } – ankur