0

私はいくつかの ToolStripMenuItem を追加している中に 1 つの Toolstrip コントロールを持っています。ToolStripMenuItem ごとに、1 つのサブメニュー (Close など) が必要です。そして、サブメニューが表示されるべき任意の ToolStripMenuItem でマウスの右ボタンをクリックします。

ToolStripMenuItem subMenuitem1 = new ToolStripMenuItem("Close");
items.DropDownItems.Add(subMenuitem1);

しかし、これは機能していません。何か提案してください。ありがとうございました

4

1 に答える 1

4

「アイテム」オブジェクトとは?

サブメニューの追加:

// new menu, if you're using designer you should have it already
ContextMenuStrip mnu = new ContextMenuStrip();

// new tool strip item
ToolStripMenuItem mnuItem1 = new ToolStripMenuItem();
mnuItem1.Text = "Some text 1";
mnuItem1.Name = "mnuItem1";

// new submenu item
ToolStripMenuItem mnuItem2 = new ToolStripMenuItem();
mnuItem2.Text = "Some text 2";
mnuItem2.Name = "mnuItem2";

// connect them...
mnuItem1.DropDownItems.Add(mnuItem2);
mnu.Add(mnuItem1);

さて、イベントへのサブスクライブの問題です。

マウスの右クリックでサブメニューが表示されるようにします。通常、サブメニューのあるアイテムの上にマウスを置くと表示されます。したがって、自分のやり方で設定する場合は、メインの toolStripItem を右クリックしたときに手動で追加する必要があると思います。

ToolStripMenuItem には MouseClick イベントがありません。MouseDown イベントでクリックされたマウス ボタンを記憶し、Click イベントで処理できます。

また、ToolStripMenuItem の 1 つのインスタンスを 1 つのメニューに複数回追加したり、同じ項目を複数のメニューに追加したりしても機能しないことに注意してください。毎回新しいアイテムを作成する必要があります。

于 2013-07-10T06:55:49.413 に答える