C# 具有复制/粘贴功能的只读DataGridView?
我正在开发一个winform应用程序,并使用Datagridview显示记录 现在我有一个要求,单元格内容应该是只读的,但同时我希望最终用户可以将单元格内容复制到剪贴板,而不是编辑它 如果您有任何解决方案,请提出建议C# 具有复制/粘贴功能的只读DataGridView?,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我正在开发一个winform应用程序,并使用Datagridview显示记录 现在我有一个要求,单元格内容应该是只读的,但同时我希望最终用户可以将单元格内容复制到剪贴板,而不是编辑它 如果您有任何解决方案,请提出建议 DataGridView.ReadOnly = True; DataGridView.SelectionMode = DataGridViewSelectionMode.CellSelect; 然后用户可以从单元格中选择数据(字符串),并按CTRL+V组合键将其放入剪贴板
DataGridView.ReadOnly = True;
DataGridView.SelectionMode = DataGridViewSelectionMode.CellSelect;
然后用户可以从单元格中选择数据(字符串),并按CTRL+V组合键将其放入剪贴板
然后用户可以从单元格中选择数据(字符串)并按CTRL+V将其放入剪贴板您可以使用此代码进行尝试-基于
DataGridViewCell.OnKeyPress
链接:
您可以尝试使用此代码-基于
DataGridViewCell.OnKeyPress
链接:
您还可以向DataGrid添加一个ContextMenu,并添加一个复制和粘贴项,向其中添加Ctrl+V和Ctrl+C快捷键 然后你处理他们的事件。如果需要,可以将菜单设置为Visible=false,右键单击时菜单不会显示,但快捷方式仍然有效
就我个人而言,我喜欢右键单击菜单添加到数据网格的触摸功能,但这是您的选择。您还可以向数据网格添加上下文菜单,添加复制和粘贴项,向其中添加Ctrl+V和Ctrl+C快捷键 然后你处理他们的事件。如果需要,可以将菜单设置为Visible=false,右键单击时菜单不会显示,但快捷方式仍然有效 就我个人而言,我喜欢右键单击菜单添加到数据网格中的触摸功能,但这是您的选择。您可以添加到XAML中: ClipboardCopyMode=“IncludeHeader”/“ExcludeHeader”/“NONE”您可以添加到XAML中:
ClipboardCopyMode=“IncludeHeader”/“ExcludeHeader”/“NONE”回答得好!我最喜欢这个解决方案。看起来默认的
SelectionMode
值(RowHeaderSelect
)可以正常工作,因此如果愿意,可以跳过第二行。将其设置为类似于FullRowSelect
的选项将无法正常工作;)回答得好!我最喜欢这个解决方案。看起来默认的SelectionMode
值(RowHeaderSelect
)可以正常工作,因此如果愿意,可以跳过第二行。将其设置为类似于FullRowSelect
的选项将无法正常工作;)
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(.....);
}
}