子类的Systems.Windows.Forms.TextBox不会让我编辑文本

子类的Systems.Windows.Forms.TextBox不会让我编辑文本

问题描述:

在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中工作,但该行为从父项继承。我觉得我犯了一个简单的错误,但是任何帮助都会很棒。请让我知道任何关于我需要包含的项目的其他信息

default: return false;添加到您的交换机。您当前的代码吃掉所有按键。

+0

是的,简单的错误。感谢一堆它的工作 – Sudo