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焦点单元格数据方法 的盆友,欢迎留言交流!

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