2009-10-30 4 views
2

시스템 트레이에 NotifyIcon을 가지고 싶습니다. 클릭하면 다른 양식을 여는 여러 옵션이있는 NotifyIcon에서 컨텍스트 메뉴가 열립니다. 내가 읽고NotifyIcon (VB.NET)을 클릭하면 메뉴가 열려 있습니다.

는 내가의 ContextMenu를 사용해야하고 Google'ing과 다양한 코드를 시도 후 나는 작업을 얻이 수없는 것 :/

이 문제에 어떤 도움이 크게 appreicated된다.

+0

어떤 부분이 작동하지 않습니까? 상황에 맞는 메뉴를 표시하거나 상황에 맞는 메뉴 항목에서 양식을 여는 중입니까? –

+0

죄송합니다. 더 구체적이어야합니다. 컨텍스트 메뉴 전체가로드되지 않습니다. 나는 그것을 어떻게 보이게하는지 알 수 없다. – Whitey

+1

당신은 이미 여기에 언급 된 예와 같이 해본 적이 있습니까? : http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon.aspx – Naveen

답변

1

양식 디자이너에서 ContextMenu를 이미 디자인 했습니까? 그렇지 않다면 그것은 첫 번째 단계입니다. 새로운 ContextMenu를 만들고 (왼쪽의 도구 상자에서 더블 클릭) 모든 메뉴 항목을 추가하십시오. 그런 다음 formname.Show() 호출에 넣을 빈 .Click 이벤트 처리기에 넣을 각 항목을 두 번 클릭 할 수 있습니다. 또한 폼 디자이너에서 NotifyIcon을 추가해야하며, 속성을 편집 할 때 위의 ContextMenu의 이름을 입력하는 "컨텍스트 메뉴"라는 속성이 있습니다. 아이콘을 항상 표시하려면 Visible 속성을 True로 설정하면됩니다. 에

1

추가 상황에 맞는 메뉴 사용자에 대한 (이 형태의 경우) 또는 상황에 맞는 메뉴 인스턴스 선언 : 여기

가 빠른 예입니다

의 ContextMenu의 cm를; NotifyIcon ni;

public Form1() { ni = new NotifyIcon(); ni.BalloonTipIcon = ToolTipIcon.Info;

cm = new ContextMenu(); 

    cm.MenuItems.Add(new MenuItem("Hello", delegate(object sender, EventArgs e) 
    { 
     MessageBox.Show(DateTime.Now.ToString("dd/MMM/yyyy hh:mm:ss tt")); 
    })); 

    cm.MenuItems.Add(new MenuItem("Exit", delegate(object sender, EventArgs e) 
    { 
     ni.Visible = false; 
     ni.Dispose(); 
     Application.Exit(); 
    })); 

    ni.ContextMenu = cm; 

    ni.Visible = true; 
    ni.Icon = this.Icon; 
} 
관련 문제