2

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

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

请建议您是否有任何解决方案。

4

4 回答 4

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

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

于 2012-10-09T12:22:29.263 回答
2

您还可以向 DataGrid 添加一个 ContextMenu,并添加一个 Copy and Paste 项,向其添加 Ctrl+V 和 Ctrl+C 快捷方式

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

就我个人而言,我喜欢添加到 DataGrid 中的右键单击菜单,但那是您的决定。

于 2012-10-09T16:16:25.763 回答
-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(.....);
     }
}
于 2012-10-09T12:31:27.020 回答
-1

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

于 2015-05-11T17:57:33.090 回答