GridControl / TreeList 控件下使用快捷鍵Ctrl+C複製單元格值

Dev在使用GridControl TreeList列表控件時,往往只有在編輯狀態下纔可以複製單元格內容。非編輯狀態下該怎麼通過快捷鍵複製呢?往下看:

·GridControl

private void gridView1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control & e.KeyCode == Keys.C)
            {
                Clipboard.SetDataObject(gridView1.GetFocusedRowCellValue(gridView1.FocusedColumn));
                e.Handled = true;
            }
        }

·TreeList

private void treeList1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && e.KeyCode == Keys.C)
            {
                TemEntity row = treeList1.GetDataRecordByNode(treeList1.FocusedNode) as TemEntity;
                if (row == null) return;
                switch (treeList1.FocusedColumn.FieldName)
                {
                    case "Name":
                        Clipboard.SetDataObject(row.Name);
                        break;
                    case "Remark":
                        Clipboard.SetDataObject(row.Remark);
                        break;
                } 
                e.Handled = true;
            }
        }

關於Clipboard和SetDataObject(object data),就是將數據對象臨時的放到系統剪切板中。多說一句,SetDataObject還有其他的重載方法,有興趣可以看下。

說明下TreeList爲何要這麼寫,因爲我不知道如何更簡單的獲取點擊單元格的數據,只能通過將焦點行對象取出來,通過treelist的FocusedColumn屬性的FieldName獲取綁定數據源的具體字段,判定當前焦點在哪列獲取對應的數據。

另外,這裏我只簡單展示了treelist兩列:Name和Remark。

如果有知道如果更簡單的獲取treelist焦點單元格數據方法 的盆友,歡迎留言交流!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章