0

Windows モバイル アプリケーションを初めて使用します。タッチ デバイス (ハードウェア キーを持つデバイス) 用の Windows モバイル アプリケーションを開発しています。ユーザーが ComboBox をタップする (指/スタイラスで) か、矢印キーを押す (リストの移動に矢印キーを使用する) かの違いをプログラムで把握したいと考えています。どちらの場合も selectedIndexChanged を呼び出すためです。ComboBox TAP またはスワイプのイベントはありますか?

どんな助けでも大歓迎です。

ありがとう
マニッシュ・クマール

4

1 に答える 1

1

そのようなイベントはありません。

私の提案は、フォームイベントクリックで指/スタイラスのクリックにフラグを立て、イベントKeyDownで矢印キーの押下にフラグを立てることです。そうすれば、SelectedIndexChange イベントで 2 つを分離できます。何かのようなもの:

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 に答える