dポイントプレゼントキャンペーン実施中!

VB.NET2003で開発中です。

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

Windows標準のショートカットキーを変更する方法は無いのでしょうか。

A 回答 (4件)

>ドロップダウンを他のキーに割り当てる方法をご存知でしたら教えていただけるとありがたいのですが。



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

この回答への補足

すいません。説明が足りませんでした。
頂いたソースでコンボボックスの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と言う様にオブジェクト名を指定しなければならないのでしょうか?

お手数ですがご存知であれば教えてください。

補足日時:2005/09/26 09:04
    • good
    • 0
この回答へのお礼

自己解決しました。

色々やってみた結果、下記のソースでうまくいきました。

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

色々ありがとうございました。

お礼日時:2005/09/26 09:55

すみません、ご質問の「他のキーに割り当て」の部分が入ってませんでしたので、


書き直しました。
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
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

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

お礼日時:2005/09/24 20:05

こんな感じで良いんでしょうか?


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
    • good
    • 0

Windowsの場合は、「レジストリ」を改ざん(聞こえは悪いですが)


することで、ショートカットキーが変更できます。
しかし、これは非常に高度な知識を要しますので、
はっきり言ってお薦めしません。
失敗したら何がおこるか予測すらできません。
Macintoshなら簡単にショートカットキーを自分で
設定できるのですが...
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!