2013-03-11 2 views
2

나는 내가 그것을 검색 할 때 내가 백 가지의 결과를 찾았을 때 "다시는이 질문을하지 않는다"라고 생각할 것입니다. 그러나 여기에 설명 된대로 코드를 입력하면 시작 메뉴 바로 위까지 최소화됩니다.C# 트레이로 최소화

이 내가 사용하는 코드 (I 코드가 트리거됩니다 있는지 확인하기 위해 메시지 상자를 추가하지만, 메시지 상자가 결코 팝업 없음) : 그것은으로 연결하는 경우

private void Form1_Resize(object sender, EventArgs e) 
{ 
    MessageBox.Show("Works1"); 
    if (WindowState == FormWindowState.Minimized) 
    { 
     this.Hide(); 
    } 
} 

알 수 없기 때문에 Form1 또는 Form, 둘 다 사용해 보았습니다. 당신이 Form 더블 클릭, 그것은 Form1.Designer.cs에서이 줄을 박았 때

private void Form_Resize(object sender, EventArgs e) 
{ 
    MessageBox.Show("Works"); 
    if (WindowState == FormWindowState.Minimized) 
    { 
     this.Hide(); 
    } 
} 

지금, :

this.Load += new System.EventHandler(this.Form1_Load); 

나는 최소화 이벤트를 트리거하기 위해 유사한 줄 필요하십니까?

는 당신이 볼 수 있듯이, 나는 완전히 오

: 분실하고, 나는 실행에 양식 숨기려면 다음 코드를 사용하고 있습니다로는 작업 표시 줄에 최소화하지 않습니다

protected override void OnLoad(EventArgs e) 
{ 
    Visible = false; // Hide form window. 
    ShowInTaskbar = false; // Remove from taskbar. 
    base.OnLoad(e); 
} 

답변

1

당신은 이벤트를 필요

private void Form1_Resize(object sender, EventArgs e) 
{ 

} 

Creating Event Handlers on the Windows Forms Designer

+0

고맙습니다. 그 일을 끝내 셨습니다. 두 답변을 모두 사용했지만 한 사람에게만 크레딧을 줄 수 있습니다. 앤디에게 이벤트 핸들을 만들기위한 링크가 있기 때문에 크레디트를 보았습니다. 그러나 ByteBlast, 당신의 제안이 매우 도움이 되었기 때문에, 나는 또한 당신에게 감사하고 싶습니다 !! –

1
  1. 양식에 NotifyIcon 구성 요소를 추가하십시오. 속성 창을 통해 아이콘을 설정했는지 확인하십시오. 그렇지 않으면 아이콘이 보이지 않습니다.
  2. 양식의 Control.SizeChanged 이벤트에 대한 이벤트 처리기를 만듭니다. 해당 이벤트 처리기에 다음 코드를 넣습니다

샘플 코드 :

private void MainForm_SizeChanged(object sender, EventArgs e) 
{ 
    if (WindowState == FormWindowState.Minimized) 
     ShowInTaskbar = false; 
} 

그리고 눈에 보이는 형태를 만들기 위해 다시 다음 코드를 배치 할 수있는 NotifyIcon.MouseDoubleClick 이벤트 핸들러 :

private void trayIcon_MouseDoubleClick(object sender, MouseEventArgs e) 
{ 
    WindowState = FormWindowState.Normal; 
    ShowInTaskbar = true; 
} 
+0

이 코드 조각은 저에게 효과적입니다. – jlvaquero

0

알아야 할 기본 사항은 이벤트입니다. 이벤트는 특정 작업이 양식 (또는 모든 제어 항목)에 발생할 때 트리거됩니다. 예를 들어, 양식의 크기를 조정하거나로드하거나 클릭하면 이벤트이 발생합니다. 이벤트가 발생할 때 자신의 코드를 실행하기 위해이 이벤트에 연결할 수 있습니다.

경우에 따라 양식의 크기가 조정 된 경우 양식을 최소화하는 코드를 실행하려고합니다. 따라서 resize 이벤트에 메서드를 연결해야합니다.당신의 방법의 이름은 관련이없는, 그래서 더 나은 이름을 사용하자 :

private void HideWhenMinimized(object sender, EventArgs e) 
{ 
    MessageBox.Show("Works1"); 
    if (WindowState == FormWindowState.Minimized) 
    { 
     this.Hide(); 
    } 
} 

양식의 Resize 이벤트로 HideWhenMinimized 방법을 훅, 당신은 이런 식으로 할 필요가 :

this.Resize += new System.EventHandler(this.HideWhenMinimized); 

폼의 생성자 또는 Load 이벤트에 해당 코드 줄을 추가하면 폼의 크기가 조정되는 즉시 코드가 호출됩니다.

관련 문제