問題タブ [contextmenustrip]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - メニューに常にニーモニックを強制的に表示する方法はありますか?
私は自分のプログラムで ContextMenuStrip を使用していますが、Alt を押さない限り、そのショートカット キー (ニーモニック、& の前にある文字の下に下線として表示する必要があるキー) が表示されませんが、Alt を押すと、表示された ContextMenuStrip が非表示になりますフォームのメイン メニューがフォーカスされるためです。したがって、コンテキスト メニューでは、ニーモニックは表示されません。
プログラムでこの動作を強制的にオンにする方法はありますか? システム設定のどこかで変更できることを他の場所で読みましたが、私のソフトウェアを使用している人々が常にニーモニックを確認できるようにする必要があります。プログラムが正しく動作するためにシステムをグローバルに変更する必要はありません!
コントロールによって表される値をすばやく編集するためのポップアップであるため、ユーザーが Enter キーを押したときに KeyDown イベントハンドラーのコードを介してこのメニューを表示する必要があります。ユーザーがコントロールをクリックすると、その内容をすばやく変更できます。C# で ctrl+space を押すとポップアップが表示され、この正確な場所に挿入できる可能性のあるコード スニペットが示唆されていると考えてください。したがって、コントロールの「コンテキスト メニュー」プロパティとして使用するか、キーボードの「コンテキスト メニューを表示」ボタンを使用しても適用されません。
ありがとう!
c# - ContextMenuStrip で ToolStripItem の選択を解除する
簡単な質問:
.Select
(コンテキスト メニュー ストリップを開くときに事前に選択されたオプションが必要な場合のように)できますが、 falseToolStripItem
に設定する方法や選択を解除する方法が見つからないようです!.Selected
出来ますか?
c# - ToolStripMenuItems を動的に追加する方法
クエリから最後の項目のみを追加します。クエリからすべての項目を追加する方法
c# - ContextMenuStripでのContextMenuコンストラクターの複製
私の調査と理解から、ContextMenuStripはContextMenuの後継となるはずであり、コードを最新の状態に保つという精神で、ContextMenuのそのようなインスタンスの1つを置き換えることに着手しました。
以前は、MenuItemにクリックハンドラーを備えたアイテムのサブメニューを提供するために、次のようなことをしていました。
単純なものが欠けているかどうかはわかりませんが、ContextMenuStripを使用して同様の機能を実現するにはどうすればよいですか?ToolStripMenuItemには、それ自体の配列を追加してサブメニューを形成できるオーバーロードされたコンストラクターはありません。次のように、ContextMenuStripから特定のアイテムインデックスを選択してアイテムを追加する方法もありません。
ToolStripItemの配列を含むサブメニューをインスタンス化できるコンストラクターがありますが、これは抽象クラスであるため、直接呼び出すことはできません。
考え?それとも、木々の間から森が見えないのでしょうか。
c# - C#でのNotifyIconのContextMenuStripのイベントハンドラー
のクリックイベントを作成したいContextMenuStrip
。このコンテキストメニューストリップをにリンクしましたNotifyIcon
。
どうやってやるの?これは私が使用したコードです:
私はこれを試しました
しかし、私はそれを言ってエラーが発生しています
エラー1'System.Windows.Forms.ToolStripItemCollection.Add(string、System.Drawing.Image、System.EventHandler)'に最適なオーバーロードされたメソッドの一致には、いくつかの無効な引数があります
PS:コードは機能しています、私はイベントハンドラーを持っていToolStripItemClickedEventArgs e
たはずEventArgs e
です。これで、コードは正常に機能します。ご協力いただきありがとうございます :)
c# - 既存の ContextMenuStrip を拡張するには?
ContextMenuStrip
アプリケーションのすべてのワークスペース コントロールに共通のものがあります。これContextMenuStrip
には 4 つの項目 (「前に移動」、「後ろに移動」、「コントロールを削除」) が含まれます。
今、私はそれを 1 つのコントロールに拡張したいと考えています。このコントロールには がありDataGridView
、選択した を削除する追加の項目が必要ですDataGridViewRow
。
これは私が試したコードです:
ループの最初の項目がデバッガーforeach
に追加された後、ctx.Items
メソッド全体が終了し、最初の項目が common にありませんContextMenuStrip
。
どうすればそれを正しく行うことができますか?
c# - ContextMenuStripどうやって更新を強制しますか(サイズが間違っていますb / cアイテムの一部を非表示にします)
ContextMenuStrip に 10 個ほどの項目があります。10 個の項目のうちどれを表示するかを決定する Opening Event ハンドラがあります。アプリケーション ロジックに基づいて、Visible = false および Enabled = false に設定することで、それらの多くを非表示にすることができます。
6/10が表示されている場合です。ストリップを初めてクリックすると、領域 4 メニュー項目の高さが空白になります。右クリックして2回目に表示させると、本来あるべき場所に表示されます。したがって、ストリップは基本的に、実際には 6 アイテムのストリップであるにもかかわらず、10 アイテムのストリップに対して計算された位置を持っています。
強制的に再計算するにはどうすればよいですか?
ここに私が試したことのいくつかがあります:
c# - ネストされた ToolStripMenuItem から取得する場合の ContextMenuStrip.Owner プロパティ null
私はContextMenuStrip
2つのsでセットアップしていますToolStripItem
。2 番目ToolStripItem
には、ネストされた が 2 つ追加されていToolStripItem
ます。私はこれを次のように定義します。
ToolStripMenuItem
次に、応答する3 つの のクリック イベントのイベント リスナーをセットアップします。方法は次のとおりです (3 つの方法のうち 2 つだけをリストしました)。
これが私が抱えている問題です:
私のcontextJumpTo_Click
方法は完全にうまくいきます。どのDataGridView
クリックが発生したかを特定するところまでたどり着き、先に進むことができます。ただし、 はのcontextJumpTo
ToolStripMenuItem
ネストされたメニュー項目ではありませんContextMenuStrip
。
しかし、私の方法はcontextJumpToHeatmapStart_Click
正しく機能しません。私が決定する行に降りるとowner.SourceControl
、SourceControl
は null であり、先に進むことができません。ToolStripMenuItem
これで、これが my の別の 1 つの下にネストされていることがわかりましContextMenuStrip
たが、なぜ my のSourceControl
プロパティが突然 null になるのContextMenuStrip
でしょうか?
SourceControl
ネストされた for aToolStripMenuItem
を取得するにはどうすればよいContextMenuStrip
ですか?
c# - ToolStripMenuItem クリック ハンドラで ContextMenuStrip を開いた TreeNode を取得する方法はありますか?
異なるレベルの TreeNodes を持つ TreeView があります。
同じ ContextMenuStrip をすべての親 TreeNodes に追加しました。その ContextMenuStrip を開いて「すべて削除」を押すことで、すべての子 TreeNodes を削除できるようにしたいと考えています。
そして、ユーザーがメニューを開くためにクリックした TreeNode を取得する方法がわかりません
。