2017年5月4日 星期四

C# 取得dataGridView及listView所選取的那格的索引值 VS2017

相關的問題上網找,有一些答案不太正確,可能是因為版本的關係?
自己摸索後得到的答案如下:

listView只能一次選一整列,可以用預設的ItemSelectionChanged事件,讓滑鼠在上面點一下的時候,立刻知道所選取的是哪一列,該列的索引值是多少?

語法如下:
//
//這個事件是"所選取的項目改變"時就會觸發
private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
    {
        //
        //先宣告一個整數變數來儲存索引的值
        int i;
        //
        //把索引值存入i,關鍵字是"焦點的項目",記得轉換型別
        i = Convert.ToInt32(listView1.FocusedItem.Text);
        //
        //接著來測試看看是否有成功
        label1.Text = Convert.ToString(i);
    }



dataGridView方面,一樣有類似的SelectionChanged事件,不過在listView中所有的項目都只有Item,而在dataGridView中則有分行Row和列Column,而關鍵字則變成"當前格子的地址",行跟列變成X和Y.

語法如下:
//
//一樣用事件啟動,選擇改變時就立刻改變
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
    {
        //
        //需要兩個變數來儲存行跟列
        int x, y;
        //
        //
        x = Convert.ToInt32(dataGridView1.CurrentCellAddress.X);
        y = Convert.ToInt32(dataGridView1.CurrentCellAddress.Y);
        //
        //一樣用兩個label來測試看看有沒有成功
        labelx.Text = Convert.ToString(x);
        labely.Text = Convert.ToString(y);
    }
如果測試後的結果,label上的數字會跟著我所選的格子而改變,就是成功了

沒有留言:

張貼留言

C# 自動滑鼠ATM_Lite ver0.97的程式碼

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq...