• ベストアンサー

ショートカットキーの変更をしたい

VB.NET2003で開発中です。 フォームにコンボボックスを配置して、ファンクションキーのF4を押すと、ドロップダウンリストが表示されますが、これを別のキーに割り当て、F4キーを別の処理でしよう出来る用にしたいのですが方法が分かりません。 Windows標準のショートカットキーを変更する方法は無いのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • locoyama
  • ベストアンサー率77% (7/9)
回答No.4

>ドロップダウンを他のキーに割り当てる方法をご存知でしたら教えていただけるとありがたいのですが。 えーと、F1キーにドロップダウンを割り当てているのですが No.3のコードではちゃんと動作しないと言う意味でしょうか? もし、そうであればもう少し詳しい仕様をお聞かせ願えますでしょうか?

hara30s
質問者

お礼

自己解決しました。 色々やってみた結果、下記のソースでうまくいきました。 Private Sub Form1_KeyDown(ByVal sender As Object,ByVal e As Sysytem.Windows.Forms.keyEventArgs) Handles MyBase.KeyDown If Type Me.ActiveControl Is Combobox then Select Case e.KeyCode Case Keys.F4 e.handled=True Case Keys.Down Dim a As Combobox a = ActiveControl a.DroppedDown = True End Select End IF End Sub 色々ありがとうございました。

hara30s
質問者

補足

すいません。説明が足りませんでした。 頂いたソースでコンボボックスのKeyD フォームのKeyDownイベントで、オブジェクト名を指定するのではなく、オブジェクトの種類がコンボボックスの場合、ドロップダウンリストが表示されるようにしたいのです。 F4を無効にするのは、教えていただいたソースをもとに下記のようにしフォームのイベントで一括して処理出来るようになりました。 Private Sub Form1_KeyDown(ByVal sender As Object,ByVal e As Sysytem.Windows.Forms.keyEventArgs) Handles MyBase.KeyDown If Type Me.ActiveControl Is Combo then if e.KeyCode = Keys.F4 then e.handled=True End If End IF End Sub ドロップダウンリストを表示させるのは、やはりCombo1.DroppedDownと言う様にオブジェクト名を指定しなければならないのでしょうか? お手数ですがご存知であれば教えてください。

その他の回答 (3)

  • locoyama
  • ベストアンサー率77% (7/9)
回答No.3

すみません、ご質問の「他のキーに割り当て」の部分が入ってませんでしたので、 書き直しました。 Private Sub ComboBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ComboBox1.KeyDown Select Case e.KeyCode Case Keys.F1 Me.ComboBox1.DroppedDown = True e.Handled = True Case Keys.F4 Me.Button1.Focus() e.Handled = True End Select End Sub

hara30s
質問者

お礼

回答ありがとうございます。 教えていただいたソースでうまくいきました。 このソースをもとに、フォームのKeyDownイベントにコントロールの種類がコンボボックスであれば、F4キーでドロップダウンをしないように出来たのですが、ドロップダウンを他のキーに割り当てる方法をご存知でしたら教えていただけるとありがたいのですが。

  • locoyama
  • ベストアンサー率77% (7/9)
回答No.2

こんな感じで良いんでしょうか? Private Sub ComboBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ComboBox1.KeyDown ’キーコードを判別 If e.KeyCode = Keys.F4 Then ’ボタンにフォーカス Me.Button1.Focus() ’イベントを終了させる e.Handled = True Else '処理 End If End Sub

noname#17433
noname#17433
回答No.1

Windowsの場合は、「レジストリ」を改ざん(聞こえは悪いですが) することで、ショートカットキーが変更できます。 しかし、これは非常に高度な知識を要しますので、 はっきり言ってお薦めしません。 失敗したら何がおこるか予測すらできません。 Macintoshなら簡単にショートカットキーを自分で 設定できるのですが...

関連するQ&A

  • ショートカットキーに関して

    ショートカットキーに関して質問があります。 「msdn」にて「VB6の規定のショートカット キー」を拝見し調べたのですが分からなかったので質問します。 フォーム、標準モジュールのプログラムソース中にCall で他の関数を呼んでいますが、その関数を定義しているところを検索しカーソルが移るようなショートカットキーはないでしょうか? 今は、プログラムソース中で関数を選択した状態で、「右クリック」-「定義(D)」で行っています。 ご協力お願い致します。

  • ドロップダウンリストのアイコンの行方

    こんにちは。 いつもお世話になっております。 今回、VBにてドロップダウンリストを作成したいと 思っているのですが、ユーザーフォームのアイコン にドロップダウンリストがなく、困っています。 コンポーネントから追加するのかと考えたのですが、 ドロップダウンリストらしきものが見つかりません。 ドロップダウンリストを使用する方法をご存知の方 がいらっしゃいましたら、教えていただけたらと 思います。 よろしくお願い致します。

  • VB(6.0)上でファンクションキーを押下出来ない

    VB(6.0)を使用して開発されたプログラムを改定しています。 画面上にボタンが配置されファンクションキーをF1~F12まで 割り当てています。 その中であるFoamだけF3,F5を押下するとプログラムが 強制終了されてしまいます。 マウスでクリックすると問題なく処理されます。 また別の画面ではF1~F12まで問題なく押下出来ます。 原因が分かりません。コーディングで対応出来るものでしょうか。 ご指導よろしくお願いいたします。

  • Windowsショートカットキーの変更方法

    Windowsのショートカットキーの変更方法を教えてください? ファイル名の変更でショートカットキー[F2]を多用していますが、[F1]を誤って押してヘルプが起動してしまうので、頻繁に使わない[F1]キーを無効にしたいです。

  • エクセルのシートにコンボボックスを配置しようとしています。

    エクセルのシートにコンボボックスを配置しようとしています。 コントロールツールボックスのコンボボックスは、見た目があまりよくないところが 気になります。 ドロップダウンのボタンのデザインが角ばってることや シートのフォントと同一のフォントに設定してもちょっと違う(なぜ?)とこなど、 気にいりません。 フォームのコントロールは名前が変更できず、VBの関数がドロップ1_Change()などとなるため、 後に管理しづらそうで心配しています。 コントロールツールボックスのコンボボックスの見た目を改善する方法、または、 フォームのコントロールの名前を変更する方法がありましたら、 教えてください!!

  • コンボボックスにキー入力をさせない方法(ACCESS VBA)

    ACCESS VBAでコンボボックスを使ったプログラムを作成しています。 コンボボックスにキー入力(特にdelete、BackSpaceキー)をさせたくありません。 VBではSTYLEプロパティをドロップダウンリストにすれば 可能ですが、VBAで同じようにするプロパティが見つかりません。どなたかご存知でしたら教えてください。 それとも、そもそもそのようなプロパティは用意されていないのでしょうか? そのような場合も考えて、コンボボックスのKeydownイベントでキーコードを拾ってdelete、backspaceキーを無効にしようとも思いましたが、どうしたら無効になるのかわからず、できませんでした。 どなたかよい方法をご存知でしたら教えてください。

  • ショートカットキー

    こんにちは。 リードメールの「西成広告電信」などをやっている時に、頻繁にカレントウィンドウ(一番上のウィンドウ)を閉じることになりますが、 そういう場合、自分はショートカットキーの【Ctrlキー】+【Wキー】という形で閉じています。 この「2つのキーを同時に押す」という作業を、(普段使わないファンクションキーなどの)1つのキーに割り当てる方法などがもしありましたら教えていただけないでしょうか。 あとそれに関連して、自分のメールアドレスなどの長い文字列を、(普段使わないファンクションキーなどの)1つのキーに割り当てる方法などがもしありましたら教えていただけないでしょうか。 どうぞよろしくお願いします。

  • ショートカットキーF12設定不可能

    テキストファイルへのショートカットをデスクトップに張り付けて、右クリック>プロパティ>ショートカットキーをF11に設定すると、ファンクションキーF11で起動できるようになりました。しかし、なぜかF12だとテキストファイルが起動しません。どうしてでしょうか?

  • Excel ComboBox.List設定

    「フォーム」メニューから配置したコンボボックス(ドロップ1)のリストにマクロから文字列を設定する事ができるでしょうか? 「コントロールツールボックス」メニューから配置するコンボボックス(ComboBox1)は分かります。

  • コンボボックスのドロップダウンリストが表示されない

    MFCでアプリを作成、アプリの画面上にコンボボックスのリソースを貼り付け、アプリ起動直後は、コンボボックスのドロップダウンリストを表示できています。 しかし、アプリ画面のサイズを変更すると、▼ボタンを押下しても、ドロップダウンリストが表示されなくなってしまいます。 アプリ画面のサイズを変更後も、コンボボックスのドロップダウンリストを表示できるようにする方法を教えてください。

専門家に質問してみよう