2012-10-08 126 views
1

我是.net的初學者。這可能是一個愚蠢的問題。我想禁用ctrl + cctrl + v鍵盤快捷鍵。禁用在datagridview中複製和粘貼

之前詢問這裏我想這些代碼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; 

dgvMain是datagridview的
我可能失去了一些東西。

編輯:
我已經改變了我的DataGridView的屬性包括:

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

請幫
先謝謝了。

+0

退房[這](http://stackoverflow.com/questions/2619535/how-do-you-disable- a-datagridviews-keyboard-shorcuts)如何處理快捷方式的線程。你可以使用它的Ctrl + C和Ctrl + V. –

回答

3

您不會拼出不工作的部分,所以我只能猜測您指的是網格的TextBox部分。

只要有ClipboardCopyMode = Disable就足夠了,但是如果單元格的TextBox處於編輯模式,那麼該屬性將被忽略。你將不得不禁用按鍵和文本菜單自己:

例子:

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; 
    } 
} 
+0

感謝這工作。 :) –