我是 Windows 移动应用程序的新手。我正在为触摸设备(带有硬件键的设备)开发一个 Windows 移动应用程序。我想以编程方式找出用户点击组合框(通过手指/手写笔)或按下箭头键(使用箭头键进行列表遍历)之间的区别。因为在这两种情况下它都会调用 selectedIndexChanged。ComboBox TAP 或 swipe 是否有任何事件?
任何帮助表示赞赏。
谢谢马尼什库马尔
_
我是 Windows 移动应用程序的新手。我正在为触摸设备(带有硬件键的设备)开发一个 Windows 移动应用程序。我想以编程方式找出用户点击组合框(通过手指/手写笔)或按下箭头键(使用箭头键进行列表遍历)之间的区别。因为在这两种情况下它都会调用 selectedIndexChanged。ComboBox TAP 或 swipe 是否有任何事件?
任何帮助表示赞赏。
谢谢马尼什库马尔
_
没有这样的事件。
我的建议是在表单事件 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 来做一些类似的事情。