0

我是 C# 中的新手程序员和代码(实际上是 WPF)。我的代码有问题,想知道您是否可以提供帮助。

我需要在已经存在DoubleClick的交换机上添加一个。e.Key代码是这样的:

private void txtMainInput(object sender, keyEventArgs e)
{
    ...
    switch (e.key)
    {
        case Key.Enter:
                OnInput_EnterDown();
        break;

        case Key.Tab:
                OnInput_TabDown();
        break;

        case MouseDoubleClick:
                OnInput_DoubleClick();

        break;

        default:
        break;
   }
}

Problem is并不third case真正存在,因为密钥派生自keyboardEventArgsmouseDoubleclick派生自mouseEventArgs,因此我不能调用MouseDoubleClick. 我怎样才能克服这个?

4

1 回答 1

1

第三个不存在的原因是因为 KeyEventArgs在键盘的 KeyDown/KeyPress 事件上返回,而不是在鼠标上......

要订阅鼠标点击,您需要另一个事件,例如MouseDoubleClick并在其中放置您想要的任何逻辑:

    public MainWindow()
    {
        InitializeComponent();
        txtMainInput.MouseDoubleClick += txtInput_MouseDoubleClick;
    }

    void txtInput_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        // Put doubleClick logic here
    }

以同样的方式您可以订阅MouseDownMouseUp...由于您将其标记为 WPF,这也可以在 XAML 中完成...。

于 2013-02-03T20:11:20.343 回答