如何在Windows Mobile中获取ComboBox的TAP?

时间:2012-05-31 11:41:43

标签: windows-mobile windows-mobile-6.5

我是Windows移动应用程序的新手。我正在开发用于触摸设备的Windows移动应用程序(具有硬件密钥的设备)。我想以编程方式找出用户点击ComboBox(通过手指/手写笔)或按箭头键(使用箭头键进行列表遍历)之间的区别。因为它同时调用selectedIndexChanged。 ComboBox TAP或刷卡有什么事件吗?

感谢任何帮助。

谢谢你 Manish Kumar

1 个答案:

答案 0 :(得分:1)

没有这样的事件。

我的建议是在表单事件中标记手指/手写笔点击单击并标记for事件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来做类似的事情。