0

WINFORMSでWebブラウザを構築しています。ツールストリップにdropdownボタンがあります。の項目はdropdown、実行時にXMLファイルから動的に追加されます。ドロップダウンボタンは、ブックマーを表示するために使用されます。ブックマークのcontextmenu追加と削除のオプションがあります。ドロップダウンボタンの各項目を右クリックしてコンテキストメニューを表示する必要があるため、contextmenuproperty「いいえ」と表示されます。アイテムのイベントdropdownbutton items.すら見つかりませんでした。mouseclickしたがって、e.location

//I have got these events do far (just handles the click)
    private void bookmarksDropDownButton2_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
            {
                tabControlBrowser.SelectedTab = tabControlBrowser.TabPages[tabControlBrowser.TabPages.Count - 1];
                getCurrentWebBrowser().Navigate(dictionary[e.ClickedItem.Text]);
                AddressComboBox1.Text = dictionary[e.ClickedItem.Text];
            }

この方法でイベントをコードに接続しました

    foreach (ToolStripItem item in bookmarksDropDownButton2.DropDownItems)
            {
                item.MouseDown += new MouseEventHandler(item_MouseDown);
            }
    private void item_MouseDown(object sender, MouseEventArgs e)
        {
              BOOKcontextMenuStrip1.Show(e.Location);
              //this one pop's out the menu at the uppermost corner of the window.
        }

ここに画像の説明を入力してください

4

1 に答える 1

1

残念ながら、ContextMenuを の個々のアイテムに接続することはできませんToolStrip。あなたがする必要があるのは、DropDownButton を右クリックしているときにコンテキスト メニューをそのMouseDownイベント (どのマウス ボタンをチェックするか) でツールストリップ自体に設定することです。

  • またはこの場合:

代わりに、アイテムごとにイベントのハンドラーを動的に追加してMouseDown、実際のアイテムを選択 (ホバー) できるようにする必要があります。アイテムを右クリックすると、コンテキスト メニューがツール ストリップ自体に割り当てられます (コンテキスト メニューの Tag プロパティなどで、クリックされたアイテムの ID を保存できるようになりました)。

ContextMenu のClosedイベントで、ツールストリップからメニューを削除します ( .ContextMenuStrip=null)。

申し訳ありませんが、現在 C# の例がありません。十分に明確かどうか教えてください。その場合は、例を追加しようとします。

于 2012-10-11T00:07:08.043 に答える