0

我是 Windows 移动应用程序的新手。我正在为触摸设备(带有硬件键的设备)开发一个 Windows 移动应用程序。我想以编程方式找出用户点击组合框(通过手指/手写笔)或按下箭头键(使用箭头键进行列表遍历)之间的区别。因为在这两种情况下它都会调用 selectedIndexChanged。ComboBox TAP 或 swipe 是否有任何事件?

任何帮助表示赞赏。

谢谢马尼什库马尔
_

4

1 回答 1

1

没有这样的事件。

我的建议是在表单事件 Click 中标记手指/触控笔点击,并在事件 KeyDown 中标记箭头键按下。这样您就可以在 SelectedIndexChange 事件中将两者分开。就像是:

enum InteractionType
{
    Click,
    KeyDown
}

private InteractionType _userInteractionType;


private void form_Click(object sender, EventArgs e)
{
    _userInteractionType = InteractionType.Click;
}

private void form_KeyDown(object sender, KeyEventArgs e)
{
    e.Handled = true;
    switch (e.KeyCode)
    {
        case Keys.Up:
        case Keys.Down:
            _userInteractionType = InteractionType.KeyDown;
            break;
    }
}

private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    switch (_userInteractionType)
    {
        case InteractonType.Click:
            // do something
            break;
        case InteractionType.KeyDown;
            // do something else
            break;
    }
}

如果您需要在很多地方经常这样做,那么可能值得为您的项目创建一个表单基类,并通过覆盖 OnClick 和 OnKeyDown 来做一些类似的事情。

于 2012-05-31T15:01:27.373 回答