0

スタイル プロパティが「0 - ドロップダウン コンボ」に設定されているユーザー コントロールにコンボボックス (cboURL) があります。コンボボックスにフォーカスがあるときに F1 キーを押すと、「このプログラムは Web ページを表示できません」というエラー テキストを含むダイアログ ウィンドウが表示されます。

必要な動作は、(UserControl の他のすべてのコントロールの場合と同様に) F1 を抑制できるように、F1 キーの押下が UserControl_KeyDown に送信されることです。

Private Sub UserControl_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyF1 Then KeyCode = 0
End Sub

UserControl の KeyPreview プロパティが True に設定されています。

cboURL で F1 が押された場合、cboURL_KeyDown()、cboURL_KeyUp()、cboURL_KeyPress()、UserControl_KeyDown()、UserControl_KeyUp()、または UserControl_KeyPress() のいずれのイベント ハンドラも呼び出されません。Form_KeyDown()、Form_KeyPress()、または Form_KeyUp() イベント ハンドラも、ユーザー コントロールが埋め込まれているフォームで呼び出されません。

cboURL の Style プロパティが「2 - Dropdown List」に設定されている場合、F1 が押されると UserControl_KeyDown呼び出されます。ただし、ドロップダウン オプションのリストにないテキストを入力できるようにする必要があるため、その設定は使用できません。

このアプリケーションの .chm ヘルプ ファイルは存在しますが (hhc.exe によって生成されます)、スタンドアロンのヘルプ ファイルではありません。たとえば、Windows Exporer からダブルクリックすると、上記と同じエラー ダイアログが表示されます。ヘルプ ファイルには、コントロールの WhatsThisHelpID プロパティを使用してアクセスするポップアップ ヘルプ テキストが含まれています。

誰でもこの問題の修正または回避策を提案できますか?

4

1 に答える 1

0

参考文献 wqw からのコメント: 「含まれているフォームで KeyPreview = True を設定してみてください。KeyDown イベント ハンドラがそこに移動します。ここで動作します。」

これはうまくいきました。

于 2013-08-01T16:35:52.453 に答える