- - PR -
[Windows VB.NET] コンテキストメニューの非表示で
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-07-18 13:38
いつもお世話になっております
コンテキストメニューを非表示にするために Public Sub New() MyBase.New() ' この呼び出しは Windows フォーム デザイナで必要です。 InitializeComponent() ' InitializeComponent() 呼び出しの後に初期化を追加します。 Me.ContextMenu = New ContextMenu End Sub としたのですが 「マウス右ボタンダウン⇒コントロールの外へドラッグ⇒マウス右ボタンアップ」をすると コンテキストメニューが表示されてしまいます。 次に WndProcにて 右クリックを無効化にしてみました 大抵のコントロールで 右クリックが無効化されるのですが NumericUpDown では 右クリックが無効化されず Me.ContextMenu = New ContextMenu だけでは 「マウス右ボタンダウン⇒コントロールの外へドラッグ⇒マウス右ボタンアップ」とするとコンテキストメニューが表示されてしまいます なにか 対処方法で 知恵を貸してください よろしくお願いいたします | ||||
|
投稿日時: 2007-07-18 13:49
WinForm で、TextBox の ContextMenu を完全に無効化するには? - GDNJ アーカイブ
http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-23363.htm _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2007-07-18 14:49
別の話になりますが、 上記だけのステップについて言えば、Me.ContextMenu = Nothing としたほうがよいですね。 インスタンスを作る必要がありませんので。 | ||||
|
投稿日時: 2007-07-18 15:03
いいえ。 Nothing (null) は既定のコンテキスト メニューになります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2007-07-18 15:22
ありがとうございます
GDNJ アーカイブを拝見しました ContextMenu を殺してみましたが やはりだめでした 確かに TextBox では 右クリックを殺せば実現できます NumericUpDown では 右クリックを押しても WndProc 内でも 右クリックと認識されていないようなのです | ||||
|
投稿日時: 2007-07-18 16:55
あちゃ、やっちゃった。 やったことないこと書いたもんだから。。。 失礼しました。 #hogehogeSorterなんかと一緒の感覚で書いちゃった。 | ||||
|
投稿日時: 2007-07-18 19:24
私も昔いろいろやったことがあります。 NumericUpDownは内部でTextBoxコントロールを持っていて、 それに外部からアクセスできないので、 なかなか難しいです。 私はメッセージフックを使ってマウスの右ボタンを無効にするのが 一番楽でした。 他の方法は 自分でUpDownBaseから作り直す Reflectionでごにょごにょ くらいですかねぇ。 自分で作るのがいいかと。 安全でない方法なら他にもあると思いますが… 誰かうまい方法をしりませんかねぇ。 | ||||
|
投稿日時: 2007-07-18 19:40
あれ? NumericUpDown.Controls の中にありませんでしたっけ。 確かに名前を指定して取得というのはできないですが、Controls の中に 上ボタン、下ボタン、テキストボックスという風に入っていたような気がしま す。 # 以前それに対して Enabled = false にしたことがある _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 |