Как получить TAP ComboBox в Windows Mobile?

Я новичок в мобильном приложении Windows. Я разрабатываю мобильное приложение Windows для сенсорного устройства (устройства с аппаратным ключом). Я хочу программно определить разницу между нажатием пользователя на ComboBox (пальцем/стилусом) или нажатием клавиши со стрелкой (используя клавишу со стрелкой для перемещения по списку). Потому что в обоих случаях он вызывает selectedIndexChanged. Есть ли какое-либо событие для ComboBox TAP или салфетки?

Любая помощь приветствуется.

Спасибо
Маниш Кумар


person Manish Kumar    schedule 31.05.2012    source источник


Ответы (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.

person Fredrik Ljung    schedule 31.05.2012
comment
Спасибо, Фредрик, я реализовал почти так же. - person Manish Kumar; 01.06.2012