- 題名: メインフォームのMenuStripで定義したショートカット
- 日時: 2014/11/04 17:01:09
- ID: 32691
- この記事の返信元:
- (なし)
- この記事への返信:
- [32692] Re[1]: メインフォームのMenuStripで定義したショートカット2014/11/05 12:42:55
- ツリーを表示
■No32691に返信(納豆さんの記事) VB.NET ソースですがこんなでどうでしょう? インスタンス化の部分は既定のインスタンスを使っているので注意してください。 Form1: テストToolStripMenuItemにショートカット割り当てています Private Sub テストToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles テストToolStripMenuItem.Click Label1.Text = Date.Now.ToString("yyyy/MM/dd HH:mm:ss") End Sub Public Function PubProcessCmdKey(ByRef msg As System.Windows.Forms.Message, keyData As System.Windows.Forms.Keys) As Boolean Dim newmsg = New Message() newmsg.HWnd = Me.Handle newmsg.LParam = msg.LParam newmsg.WParam = msg.WParam Return MyBase.ProcessCmdKey(newmsg, keyData) End Function Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Form2.Show() End Sub Form2: Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, keyData As System.Windows.Forms.Keys) As Boolean Dim ret = Form1.PubProcessCmdKey(msg, keyData) If ret Then Return True Else Return MyBase.ProcessCmdKey(msg, keyData) End If End Function
分類:[.NET]
こんにちわ。
メインフォーム(アクティブではない)のメニューで登録したショートカット(Ctrl+Cなど)を、
生成した子ウィンドウ(MDIではない)でも有効にしたいのですが、
方法がよくわかりません。
ProcessCmdKey を使って色々やってみましたが、辿りつけていません。
メインメニューのみを持ったフォーム(MainForm)があるとして、
そのフォームから生成された別フォーム(SubForm)がアクティブという状態です。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=39063&forum=7
この質問と回答が、比較的お手本に近いのかな?と思ってはおりますが、
勘違いなのかうまくいっていません。
よろしくおねがいします。