1

環境

  • Windows XP x32 Visual Studio 2005 Standard Edition
  • Windows Mobile 2003(Pocket PC 2003)を実行しているHoneywell Dolphin 9500
  • .NET Compact Framework1.0SP3および.NETFramework1.1
  • VC#の使用

ゴール

たくさんのラベルとテキストボックスが付いたフォームがあります。このフォームには「作業指示」オブジェクトが入力され、デバイスの左または右のハードウェアロッカーボタンが押されると、次または前の「作業指示」が再入力されます。ユーザーがコンボ/テキストボックスを編集してからフォームにフォーカスを戻し、フォームのKeyDownイベントハンドラーが優先されるようにしたいと思います。


問題

最初のアプリケーションのロード時に、フォームにフォーカスがあると、ロッカースイッチが完全に機能し、ユーザーはハードウェアの左ボタンまたは右ボタンを押すことで、作業指示を前後にインデックス付けできます。ユーザーがテキスト/コンボボックスを選択して値を編集すると、フォームはフォーカスを失い、コンボ/テキストボックスのKeyDownイベントが優先されます。


質問

ユーザーが値を編集する機能を阻害することなく、コントロールにフォーカスをフォームオブジェクトに戻すように強制するにはどうすればよいですか?


私が試したこと

  • 現在のコントロールがフォーカスを失ったときにフォーカスをフォームに戻すために、this.Focus()という行のみを含むLostFocus()イベントハンドラーを使用して各コントロールを設定しようとしました。しかし、私は「クリック」して、コントロールがフォーカスを失うようにすることができませんでした。

コード

私の過去の質問では、自動生成されたフォームコードによってドキュメントがやや長くなるため、常にfriendpaste.comドキュメントにコードを配置していました。コードを本文に含める必要がある場合は、お知らせください。ここに貼り付けます。それ以外の場合、コードは以下のフレンドペーストリンクにあります。

http://friendpaste.com/CJ8CblLebHRXqA7UMLyvc


また...

何らかの理由で表示されたコードを自由に批評してください。ただし、スレッドをトピックに保つための回答ではなく、質問へのコメントとして批評するのが理想的です。私は新しいプログラマーであり、Pocket PC Visual C#の開発に非常に慣れていないので、フィードバックや批評を歓迎します。

さらに、さらに情報が必要な場合はお知らせください。できるだけ早く情報を含めるように最善を尽くします。

ありがとう!

4

2 に答える 2

1

ProcessCmdKey()メソッドをオーバーライドするか、フォームのKeyPreviewプロパティをtrueに設定します。

于 2011-03-31T19:48:55.607 に答える
0

「モード」編集デザインに切り替えて、「編集完了」時にフォーカスを戻しました。

于 2011-04-11T17:27:52.563 に答える