DOBON.NETプログラミング道掲示板

ツリー一括表示

Nomalアイコン ToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法 /z-f (19/07/31(Wed) 15:13) #34289
Nomalアイコン Re[1]: ToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法 /魔界の仮面弁士 (19/07/31(Wed) 16:28) #34290
  └Nomalアイコン Re[2]: ToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法 /z-f (19/07/31(Wed) 18:13) #34291 解決み!


親記事 / ▼[ 34290 ]
■34289 / 親階層)  ToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法
□投稿者/ z-f 一般人(1回)-(2019/07/31(Wed) 15:13:57)
  • アイコン環境/言語:[C# WinForms .NETFramework 4.7.2 ] 
    分類:[.NET] 

    ContextMenuStripを使ってTextBox用のコンテキストメニューを作成中です。
    ToolStripMenuItemにShortcutKeysを指定して、メニューをクリックした時とショートカットキーを押した場合で同じ挙動をさせたいのですが、
    ショートカット使用時はthis.SourceControl=nullとなってしまい、使用元のTextBoxが取得できずに困っています。
    何か良い方法は無いでしょうか?
違反を報告
[ □ Tree ] 返信 削除キー/

▲[ 34289 ] / ▼[ 34291 ]
■34290 / 1階層)  Re[1]: ToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法
□投稿者/ 魔界の仮面弁士 大御所(1237回)-(2019/07/31(Wed) 16:28:03)
  • アイコン2019/07/31(Wed) 16:30:06 編集(投稿者)

    No34289に返信(z-fさんの記事)
    > ショートカット使用時はthis.SourceControl=nullとなってしまい、使用元のTextBoxが取得できずに困っています。

    キーボードショートカットを使う際には、そのコントロールが
    アクティブになっているでしょうから、
    ActiveControl プロパティで判断できるかもしれません。


    private void toolStripMenuItem1_Click(object sender, EventArgs e)
    {
      // var menu = (ToolStripMenuItem)sender;
      var sourceControl = contextMenuStrip1.SourceControl ?? (ActiveForm ?? this).ActiveControl;
      if (sourceControl != null)
      {
        MessageBox.Show(sourceControl.Name);
      }
    }
違反を報告
[ 親 34289 / □ Tree ] 返信 削除キー/

▲[ 34290 ] / 返信無し
■34291 / 2階層)  Re[2]: ToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法
□投稿者/ z-f 一般人(2回)-(2019/07/31(Wed) 18:13:40)
  • アイコンなるほど、ActiveControlは思いつかなかった。
    これでなんとかなりそうです。感謝。
解決み!
違反を報告
[ 親 34289 / □ Tree ] 返信 削除キー/


Mode/  Pass/


- Child Tree -