What's 올바른 방법을 동적으로 메뉴를 선택 항목에 대한 컨텍스트 메뉴에서 WinForms?
문제
내가 만들려고 노력하는 컨텍스트 메뉴를 제어하는"연결"을 주 메뉴 항목을 선택합니다.가 있는 두 개의 고정 메뉴 항목은 항상 거기에 임의의 번호를 추가 메뉴 항목해야 할 수도 있습니다.
해봤 문제를 해결을 유지하여 클래스 수준을 참조하여 고정 메뉴 항목 목록과 동적인 메뉴는 항목입니다.내가 처리하는 메뉴' Opening
이벤트를 해제하여 현재의 목록 항목을 추가한 다음 해당 항목하는 메뉴입니다.이 잘 작동을 위한 메인 메뉴하지만,컨텍스트 메뉴가 이상하게 동작합.
중요한 문제는 것 같으로 시간 Opening
가 발생하며,메뉴에는 이미 결정되는 항목을 표시합니다.이 양식을 보여 줍니다:
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public class DemoForm : Form
{
private List _items;
public DemoForm()
{
var contextMenu = new ContextMenuStrip();
contextMenu.Opening += contextMenu_Opening;
_items = new List();
_items.Add(new ToolStripMenuItem("item 1"));
_items.Add(new ToolStripMenuItem("item 2"));
this.ContextMenuStrip = contextMenu;
}
void contextMenu_Opening(object sender, CancelEventArgs e)
{
var menu = sender as ContextMenuStrip;
if (menu != null)
{
foreach (var item in _items)
{
menu.Items.Add(item);
}
}
}
}
}
마우스 오른쪽 단추로 클릭하면 형태로 첫 번째 시간,아무것도 표시되지 않습니다.두 번째 메뉴가 표시됩니다.이 있는 이벤트가 발생할 수 있는 업데이트 항목은?그것은 나쁜 연습을 동적으로 메뉴 항목을 선택?
(참고:이것은 예를 들어 내가 만들기 시작했는 누군가를 원하는 이러한 기능 및 내가에 대한 호기심이 그것이 얼마나 어려운,그래서 그을 제공할 수 없는 이유에 대한 자세한 내용은 이것을 할 수 있습니다.이 사람이고 싶은"링크를"주 메뉴 항목의 컨텍스트 메뉴,그리고 그 이후 메뉴 항목의 아이 메뉴 하나 이 듯 합리적인 방법으로 그렇게했다.어떤 대안을 제안한 방법을 환영합니다.)
해결책
작업할 수 있는 항목 중 MouseDown 이벤트의 제어합니다.는지 확인 그것은 오른쪽 마우스 버튼을 너무입니다.
제휴하지 않습니다 StackOverflow