具有复制/粘贴功能的只读DataGridView?

时间:2012-10-09 10:29:30

标签: c# .net winforms datagridview

我正在开发一个winform应用程序,我使用Datagridview来显示记录。

现在我要求单元格内容应该是只读的,但同时我希望最终用户可以将单元格内容复制到剪贴板而不是编辑它。

如果您有任何解决方案,请建议。

4 个答案:

答案 0 :(得分:4)

DataGridView.ReadOnly = True;   
DataGridView.SelectionMode = DataGridViewSelectionMode.CellSelect;

然后用户可以从单元格中选择数据(字符串),然后按CTRL + V将其放入剪贴板

答案 1 :(得分:2)

您还可以将一个ContextMenu添加到DataGrid,并添加一个复制和粘贴项,添加Ctrl + V和Ctrl + C快捷方式

然后你处理他们的事件。如果需要,可以将菜单设置为Visible = false,右键单击时菜单不会显示,但快捷方式仍然有效。

就我个人而言,我喜欢右键菜单添加到DataGrid的触摸,但这就是你的通话。

答案 2 :(得分:-1)

您可以尝试使用此代码 - 基于DataGridViewCell.OnKeyPress

链接:http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcell.onkeypress.aspx

private void DataGridViewCell_KeyPress(KeyPressEventArgs e, int index)
{
     if ( (e.Key == Key.LeftCtrl || e.Key == Key.RightCtrl) 
          && e.Key == Key.C)
     {
        //You can get your cell based on index
        Clipboard.SetText(.....);
     }
}

答案 3 :(得分:-1)

您可以添加到XAML: ClipboardCopyMode =" IncludeHeader" /" ExcludeHeader" /" NONE"