2017-10-06 28 views
0

在Visual Studio 2017中,我創建了一個類來繼承System.Windows.Forms.TextBox在它自己的文件下,在項目的相同名稱空間下。我只重寫一個方法ProcessCmdKey(),以便我可以使用Ctrl +一個鍵盤快捷鍵來選擇創建的文本框中的所有文本。出於某種原因,多行文本框僅出於某種原因不允許使用Ctrl +快捷鍵。當我構建應用程序並運行它時,我無法在我的子文本框中輸入。這裏是類:子類的Systems.Windows.Forms.TextBox不會讓我編輯文本

namespace Amatechtel_Notetaker 
{ 
public class ITextBox : System.Windows.Forms.TextBox 
{ 

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
    { 
     switch (keyData) 
     { 
      case Keys.Control | Keys.C: 
       Copy(); 
       break; 
      case Keys.Control | Keys.V: 
       Paste(); 
       break; 
      case Keys.Control | Keys.X: 
       Cut(); 
       break; 
      case Keys.Control | Keys.A: 
       SelectLine(); 
       break; 
     } 
     return true; 
    } 

    //selects the current line of text for the formatting methods and allows 
    //for formatting shortcuts (e.i. ctrl+c, ctrl+a, ect) to be used. 
    internal void SelectLine() 
    { 
     SendKeys.Send("{HOME}"); 
     SendKeys.Send("+{END}"); 
    } 
} 
} 

在Form1.Designer類我創建一個對象(場)的ITextBox稱爲notesTextBox正在被用於該應用的主要文本框。 SelectLine()正在用於選擇用戶正在編輯的當前行,以便添加一個複製按鈕,並具有稍後的實現。當我構建項目時,我無法在notesTextBox中自由輸入。如果我用相同的方式構建項目,但使用Windows.System.Forms.TextBox對象,我可以在文本框中自由輸入。 Ctrl + C,V和X全部在ITextBox中工作,但該行爲從父項繼承。我覺得我犯了一個簡單的錯誤,但是任何幫助都會很棒。請讓我知道任何關於我需要包含的項目的其他信息

回答

0

default: return false;添加到您的交換機。您當前的代碼吃掉所有按鍵。

+0

是的,簡單的錯誤。感謝一堆它的工作 – Sudo

相關問題