2

私は.netの初心者です。これはばかげた質問かもしれません。ctrl+cおよびctrl+vキーボードショートカットを無効にしたい。

ここで尋ねる前に、私はこれらのコードlink1link2を試しました(機能していません

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;

dgvMaindatagridview
ですここで何かが足りないかもしれません。

編集:
私が変更した私のdatagridviewのプロパティは次のとおりです:

AllowUserToResizeColumns      -- False
AllowUserToResizeRows         -- False
ClipboardCopyMode             -- disable
ColumnsHeadersHeightSizeMode  -- AutoSize
Dock                          -- Fill
ReadOnly                      -- True   
TabStop                       -- False

よろしくお願い
します。

4

2 に答える 2

4

動作していない部分を詳しく説明していないので、グリッドの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;
  }
}
于 2012-10-08T12:50:00.867 に答える
0

あなたはこれを試すことができます。

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            TextBox tb = e.Control as TextBox;
            tb.ShortcutsEnabled = false;
        }
于 2019-03-16T09:00:10.950 に答える