C# winform控件之listview學習積累


//1.用key給ListViewItem 的 SubItems賦值
ListViewItem listViewItem= listView1.Items.Add("第一列文字");
listViewItem.SubItems.Add(new ListViewItem.ListViewSubItem() { Name = "這里就是key", Text = "這里是顯示的文字" }); 

//2.用key取ListViewItem 的 SubItems
string text= listView1.SelectedItems[0].SubItems["這里就是key"].Text

//3.給ListView添加數據並且設置選中項后,this.listView1.SelectedItems.Count一直為0;在網上找了半天,半猜出來了
//首先,給ListView添加數據寫在了ListView的構造函數里面
public listviewtest(List<List> exerciseTable, int selectIndex)
{
    InitializeComponent();
    for (int i = 0; i < exerciseTable.Count; i++)
    {
        List exerciseRow = exerciseTable[i];
        listView1.Items.Add(exerciseRow[0]);
        listView1.Items[i].SubItems.Add(exerciseRow[1]);
        listView1.Items[i].SubItems.Add(exerciseRow[2]);
        listView1.Items[i].SubItems.Add(exerciseRow[3]);
        listView1.Items[i].SubItems.Add(exerciseRow[4]);
    }            
}
//這個時候緊跟着在后面設置選中項並測試是否有選中項
if (listView1.Items.Count > 0)
{
    //listView1.Focus();
    listView1.HideSelection = false;
    listView1.Items[0].Selected = true;
    //listView1.Select();
}
int count = this.listView1.SelectedItems.Count;
/*這個時候this.listView1.SelectedItems.Count一直為零???一直搞不懂為啥
在網上找了相關資料:構造函數是用來創建和實例化對象的,窗體加載事件是在構造函數執行完之后執行的
個人猜測是因為構造函數設置ListView的選中項的時候,ListView還沒有完全被勾畫出來,
也就是說還在內存中(或者其他地方,這一塊一直不懂),然后this.listView1.SelectedItems.Count就一直為零了
把獲取選中項信息的代碼放到Load事件中,經測試結果正確*/
private void listviewtest_Load(object sender, EventArgs e)
{
    int count = this.listView1.SelectedItems.Count;//count = 1
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM