gpt4 book ai didi

c# - DataGridViewCell 编辑模式下的 Ctrl + c 复制整行

转载 作者:太空狗 更新时间:2023-10-30 00:31:55 25 4
gpt4 key购买 nike

我有一个数据网格,其中有一列包含我希望允许用户从中复制文本的文本。我已经设置了能够复制整个单元格或行的例程,但在编辑单元格和键入 CTRL + C 时遇到问题。

这是我用来允许编辑单元格的代码。进入后,我可以突出显示文本并右键单击它进行复制。这工作得很好,如果我突出显示文本并键入 CTRL + C,它会复制该行,而不是突出显示的文本。

我不想创建自己的类,如果不可能,我将保持原样。

private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.EditingControl == null ||
dataGridView1.CurrentCell.EditType != typeof (DataGridViewTextBoxEditingControl))
return;
dataGridView1.CancelEdit();
dataGridView1.EndEdit();
}

private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.CurrentCell.EditType == typeof(DataGridViewTextBoxEditingControl))
{
dataGridView1.BeginEdit(false);
}
}

最佳答案

我遇到了与 OP 完全相同的问题,需要一个略有不同的解决方案。我需要 DataGridViewSelectionMode.FullRowSelect 而不是 CellSelect。我能够通过执行以下操作实现此目的:

datagridview1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
datagridview1.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable;
datagridview1.MultiSelect = false;

我相信设置 ClipboardCopyMode disable 会破坏内置的网格功能,剩下的就是标准的 MS Windows 行为。因此,我可以在可编辑单元格中选择文本,然后输入 ctrl-C 以“仅”复制所选文本。
- 或 - 自首次发布以来,.NET 版本之间的行为很可能发生了变化。无论如何,这对我使用 Visual Studio 2013、.NET 4.5 和 Windows 7 都有效。

同样重要的是要注意:我的情况是我只关心能够复制/粘贴可编辑的列/单元格。该解决方案实现了这一点。右键单击仍然有效。

其他可能对观众很重要的网格设置:

datagridview1.EditMode = DataGridViewEditMode.EditProgrammatically;
datagridview1.EnableHeadersVisualStyles = false;
datagridview1.RowHeadersVisible = false;

关于c# - DataGridViewCell 编辑模式下的 Ctrl + c 复制整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21469847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com