C#从窗体传递keydown到usercontrol

VAAA

我有一个计算器用户控件,该用户控件以我的形式添加到面板中:

在此处输入图片说明

在我的主要表格上,我有:

 private void frmPOS_KeyDown(object sender, KeyEventArgs e)
        {
            // here I want to pass the keydown captured to my calculator
            // usercontrol so the KeyDown event is fired in my usercontrol
        }

在我的Calculator.cs中,我有:

private void Calculator_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.NumPad0:
                    // one
                    lblResult.Text = "0";
                    break;
                case Keys.NumPad1:
                    // one
                    lblResult.Text = "1";
                    break;
                case Keys.NumPad2:
                    // two
                    lblResult.Text = "2";
                    break;
                // .. etc
                case Keys.Add:
                    // Plus
                    break;
                default:
                    // Avoid setting e.Handled to                 
                    return;
            }
            e.Handled = true;
        }

有什么线索吗?

安尼什

我这样做的一种方法是在用户控件上创建一个事件,并在实际事件发生时引发它。因此,在用户控件中,我将执行以下操作...

public partial class Calculator : UserControl
{
    //create an event
    public event EventHandler<KeyPressEventArgs> OnKeyPressed;

    public Calculator()
    {
        InitializeComponent();
    }

    private void Calculator_KeyPress(object sender, KeyPressEventArgs e)
    {
        //raise the event when the key press happens and someone is listening
        if (OnKeyPressed != null)
        {
            OnKeyPressed(sender, e);
        }
    }
}

然后在主窗体上,您将订阅该事件并进行处理。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        //subscribe to the event we create on the user control
        calculator1.OnKeyPressed += new EventHandler<KeyPressEventArgs>(MyKeyPressHandlerInMainForm);
    }

    private void MyKeyPressHandlerInMainForm(object sender, KeyPressEventArgs e)
    {
        //Handle the event. Here you would write your logic.
        //Since you have keypressEventArgs coming in as a parameter you would be able to 
        //do determine what key was pressed and all that.
    }
}

enter code here

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#如何通过datagridview从窗体传递值到窗体?

来自分类Dev

将数据从UserControl传递到窗体

来自分类Dev

C# 从 UserControl 更改主窗体的 UI

来自分类Dev

如何将值从窗体传递到UserControl?

来自分类Dev

在C ++中将父窗体的引用传递给子UserControl

来自分类Dev

在Windows窗体之间传递值c#

来自分类Dev

C#如何将数据从两个Windows窗体传递到一个数据库?

来自分类Dev

窗体具有按钮C#时keyDown事件未注册

来自分类Dev

选择“绑定到Gridview窗口窗体C#的FirstOrDefault值”

来自分类Dev

使用C#绑定到WPF中的UserControl

来自分类Dev

使用C#绑定到WPF中的UserControl

来自分类Dev

绑定到userControl的WPF C#命令不会触发

来自分类Dev

C#窗体渐变

来自分类Dev

将位图从C#传递到C ++

来自分类Dev

将指针从C#传递到C ++

来自分类Dev

将变量从子窗体传递到父窗体

来自分类Dev

将参数从C#传递到Jquery

来自分类Dev

C++ 应用程序:将值从窗体传递到主窗口私有变量

来自分类Dev

UWP:将值从 UserControl 传递到 MainPage

来自分类Dev

将数据从多个 userControl 传递到表单

来自分类Dev

无法将新对象传递回主窗体 - C# .NET

来自分类Dev

Windows窗体使用C#

来自分类Dev

如何在Windows窗体上将数据源动态绑定到reportviewer C#

来自分类Dev

是否可以将Ink工具栏(UWP)集成到窗体C#中

来自分类Dev

如何在 C# windows 窗体中将 List<dynamic> 绑定到 datagridview

来自分类Dev

将结构从非托管C ++传递到C#

来自分类Dev

将回调参数从C#传递到非托管C ++

来自分类Dev

将字符串从C#传递到C ++ DLL

来自分类Dev

C#调用C ++ DLL传递指针到指针参数

Related 相关文章

热门标签

归档