C# 子类别a控制

C# 子类别a控制,c#,subclass,keyboard-events,C#,Subclass,Keyboard Events,因此,我知道如何创建子类并调用它们,但是当我必须调用/使用控件的子类时,我会迷失方向:例如: public class KeyboardButton : Button { public void SimulateButtonDown() { this.OnMouseDown(new MouseEventArgs(MouseButtons.Left, 0, 1, 1, 0)); } public

因此,我知道如何创建子类并调用它们,但是当我必须调用/使用控件的子类时,我会迷失方向:例如:

   public class KeyboardButton : Button
    {
        public void SimulateButtonDown()
        {
            this.OnMouseDown(new MouseEventArgs(MouseButtons.Left, 0, 1, 1, 0));
        }

        public void SimulateButtonUp()
        {
            this.OnMouseUp(new MouseEventArgs(MouseButtons.Left, 0, 1, 1, 0));
        }
    }
如中创建的。
如何使用,特别是当我有多个控制按钮时,我想调用方法“SimulateButtonDown()”

您使用的是WinForms还是WPF?为了得到这个答案,我将采用WinForms

首先,将您在此处发布的代码添加到WinForms项目的某个位置。然后编译它。执行此操作后,
键盘按钮
应自动添加到工具箱中。在VisualStudio的设计器中打开窗体或用户控件,您将看到一个名为“YourProjectName组件”的部分。本节应包含
键盘按钮
。只需将其拖放到窗体或用户控件上

如果要替换现有表单或用户控件上的现有按钮,更新
xxx.Designer.cs
中的代码可能会更容易。(注意:编辑xxx.Designer.cs文件时要小心。)在解决方案资源管理器中,找到包含要替换的按钮的窗体或用户控件。展开表单/用户控件的节点,您将看到一个名为
Form1.Designer.cs
的文件。双击以打开该文件。在这里,对于每个现有按钮,您应该看到这样的行:this.saveButton=new System.Windows.Forms.button()。将
System.Windows.Forms.Button
替换为
YourNamespace.KeyboardButton
。您还将看到类似于
private System.Windows.Forms.Button saveButton。在那里也替换名称空间和类名


一旦你的表单/用户控件上有了
键盘按钮
,你就可以在表单/用户控件中调用
SimulateButtonDown
SimulateButtonUp
,只需编写
saveButton.SimulateButtonUp()
,我不理解你的问题,但是我认为您需要将所有system.windows.forms.buttons更改为继承的类KeyboardButton,然后所有按钮都有新的方法。在阅读了下面michael gunter的回复后,我理解您的回复@henocsalinas。谢谢