我是.net的初学者。这可能是一个愚蠢的问题。我想禁用ctrl + c和ctrl + v键盘快捷键。
在问这里之前我尝试了这些代码link1和link2(不工作)
private void dgvMain_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
this.dgvMain.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
}
private void dgvMain_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
this.dgvMain.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable;
}
并且
this.dgvMain.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable;
dgvMain
是datagridview
我可能在这里遗漏一些东西
编辑: 我更改过的datagridview的属性是:
AllowUserToResizeColumns -- False
AllowUserToResizeRows -- False
ClipboardCopyMode -- disable
ColumnsHeadersHeightSizeMode -- AutoSize
Dock -- Fill
ReadOnly -- True
TabStop -- False
请帮忙 提前致谢。
你没有拼出不工作的部分,所以我只能猜测你是指网格的TextBox部分。
它应该足够只有ClipboardCopyMode = Disable
但如果单元格的TextBox处于编辑模式,该属性将被忽略。您必须自己禁用密钥和ContextMenu:
例:
public Form1()
{
InitializeComponent();
dgvMain.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable;
dgvMain.EditingControlShowing += dgvMain_EditingControlShowing;
}
void dgvMain_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
TextBox tb = e.Control as TextBox;
if (tb != null) {
tb.ContextMenuStrip = new ContextMenuStrip();
tb.KeyDown -= TextBox_KeyDown;
tb.KeyDown += TextBox_KeyDown;
}
}
void TextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && (e.KeyCode == Keys.C | e.KeyCode == Keys.V)) {
e.SuppressKeyPress = true;
}
}
你可以试试这个。
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox tb = e.Control as TextBox;
tb.ShortcutsEnabled = false;
}