DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

DOBON.NET

TextBoxで右クリックしてもコンテキストメニューが表示されないようにする

デフォルトの状態ではテキストボックスで右クリックすると嫌でもコンテキストメニュー(ショートカットメニュー、ポップアップメニュー)が表示されます。これを表示させないようにする方法を紹介します。

.NET Framework 2.0以降で、ShortcutsEnabledをfalseにする方法

.NET Framework 2.0以降では、TextBoxのShortcutsEnabledプロパティをfalseにすることで、コンテキストメニューが表示されなくなるようです。しかしこの場合は、Ctrl + Cや、Ctrl + Vなど、すべてのシュートカットキーが使えなくなります。

ContextMenuに空のContextMenuオブジェクトを指定する方法

TextBoxのContextMenuプロパティに空のContextMenuオブジェクトを指定します(.NET Framework 2.0以降では、ContextMenuではなく、ContextMenuStrip)。

次の例ではテキストボックスTextBox1の右クリックでコンテキストメニューが表示されないようにしています。

[VB.NET]
'TextBox1のContextMenuに空のContextMenuを指定し、
'TextBox1の右クリックでコンテキストメニューが
'表示されないようにする
TextBox1.ContextMenu = New ContextMenu
[C#]
//TextBox1のContextMenuに空のContextMenuを指定し、
//TextBox1の右クリックでコンテキストメニューが
//表示されないようにする
TextBox1.ContextMenu = new ContextMenu();

この方法では、テキストボックスでマウスの右ボタンを押し、テキストボックスの外でボタンを離すと、コンテキストメニューが表示されてしまうようです。これを防ぐ方法を、CAT-chyさんのコメントでいただきましたので、そちらをご覧ください。

  • 履歴:
  • 2007/1/15 .NET Framework 2.0に関する記述を追加。