시스템 트레이에 대한 앱 최소화
C# 및 Visual Studio 2010으로 구동되는 Windows 양식 앱이 있습니다.
작업 표시줄이 아닌 시스템 트레이로 앱을 최소화한 다음 시스템 트레이를 두 번 클릭하면 다시 가져올 수 있는 방법은 무엇입니까?감 잡히는 게 없어요?또한 시스템 트레이의 아이콘에서 메뉴를 만들려면 어떻게 해야 하며 마우스 오른쪽 단추를 누르면 로그인, 연결 끊기, 연결 끊기 등의 메뉴가 표시됩니다.또한 시스템 트레이에서 풍선이 튀어나오는 것처럼 보여줄 수 있는 방법이 있습니까?
PS: 이미 알림을 추가했습니다.아이콘입니다만, 사용법을 모르겠습니다.
양식의 크기 조정 이벤트를 처리합니다.이 핸들러에서는 크기 조정 이벤트의 기본 기능을 재정의하여 양식을 작업 표시줄이 아닌 시스템 트레이로 최소화합니다.양식의 이벤트 크기 조정 처리기에서 다음을 수행하여 이 작업을 수행할 수 있습니다.양식의 WindowState 속성이 FormWindowState로 설정되어 있는지 확인합니다.최소화됨.예인 경우 양식을 숨기고 알림 사용개체를 아이콘으로 표시하고 일부 정보를 표시하는 풍선 팁을 표시합니다.WindowState가 FormWindowState가 되면,일반, 알림 사용 안 함Visible 속성을 false로 설정하여 개체를 아이콘화합니다.이제 알림을 두 번 클릭하면 창이 다시 나타납니다.작업 표시줄의 아이콘 개체입니다.이 경우 알림 처리아이콘의 마우스 더블클릭 이벤트입니다.여기서는 Show() 메서드를 사용하여 양식을 표시합니다.
private void frmMain_Resize(object sender, EventArgs e)
{
if (FormWindowState.Minimized == this.WindowState)
{
mynotifyicon.Visible = true;
mynotifyicon.ShowBalloonTip(500);
this.Hide();
}
else if (FormWindowState.Normal == this.WindowState)
{
mynotifyicon.Visible = false;
}
}
저는 전체 해결책을 달성하기 위해 이것을 찾았습니다.위의 대답은 작업 표시줄에서 창을 제거하지 못합니다.
private void ImportStatusForm_Resize(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
notifyIcon.Visible = true;
notifyIcon.ShowBalloonTip(3000);
this.ShowInTaskbar = false;
}
}
private void notifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
{
this.WindowState = FormWindowState.Normal;
this.ShowInTaskbar = true;
notifyIcon.Visible = false;
}
또한 양식 설계자를 사용하여 통지 아이콘 컨트롤의 다음 속성을 설정하는 것이 좋습니다.
this.notifyIcon.BalloonTipIcon = System.Windows.Forms.ToolTipIcon.Info; //Shows the info icon so the user doesn't think there is an error.
this.notifyIcon.BalloonTipText = "[Balloon Text when Minimized]";
this.notifyIcon.BalloonTipTitle = "[Balloon Title when Minimized]";
this.notifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon.Icon"))); //The tray icon to use
this.notifyIcon.Text = "[Message shown when hovering over tray icon]";
알림에 아이콘 파일을 추가하는 것을 잊지 마십시오.아이콘이 표시되지 않으면 트레이에 표시되지 않습니다.
좋아요
private void Form1_Resize(object sender, EventArgs e)
{
if (FormWindowState.Minimized == this.WindowState)
{
notifyIcon1.Visible = true;
notifyIcon1.ShowBalloonTip(500);
this.Hide();
}
else if (FormWindowState.Normal == this.WindowState)
{
notifyIcon1.Visible = false;
}
}
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
}
이것을 먹어보세요.
private void Form1_Load(object sender, EventArgs e)
{
notifyIcon1.BalloonTipText = "Application Minimized.";
notifyIcon1.BalloonTipTitle = "test";
}
private void Form1_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
ShowInTaskbar = false;
notifyIcon1.Visible = true;
notifyIcon1.ShowBalloonTip(1000);
}
}
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
ShowInTaskbar = true;
notifyIcon1.Visible = false;
WindowState = FormWindowState.Normal;
}
이것은 제가 지원서에서 사용하는 방법입니다. 꽤 간단하고 자기 설명적이지만, 귀하의 의견에 답하여 더 자세한 내용을 알려드릴 수 있어 기쁩니다.
public Form1()
{
InitializeComponent();
// When window state changed, trigger state update.
this.Resize += SetMinimizeState;
// When tray icon clicked, trigger window state change.
systemTrayIcon.Click += ToggleMinimizeState;
}
// Toggle state between Normal and Minimized.
private void ToggleMinimizeState(object sender, EventArgs e)
{
bool isMinimized = this.WindowState == FormWindowState.Minimized;
this.WindowState = (isMinimized) ? FormWindowState.Normal : FormWindowState.Minimized;
}
// Show/Hide window and tray icon to match window state.
private void SetMinimizeState(object sender, EventArgs e)
{
bool isMinimized = this.WindowState == FormWindowState.Minimized;
this.ShowInTaskbar = !isMinimized;
systemTrayIcon.Visible = isMinimized;
if (isMinimized) systemTrayIcon.ShowBalloonTip(500, "Application", "Application minimized to tray.", ToolTipIcon.Info);
}
시스템 트레이에서 이미지를 클릭하면 프레임이 보이는지 확인한 다음 Visible = true 또는 false를 설정해야 합니다.
...그리고 오른쪽 클릭 알림 메뉴의 경우 양식에 컨텍스트 메뉴를 추가하고 편집한 다음 각 컨텍스트 메뉴 항목을 두 번 클릭하여 마우스 클릭 이벤트를 설정한 다음 알림 아이콘 속성에서 ContextMenuStrip을 선택하여 알림 아이콘1에 첨부합니다.
창 상태 = 창 상태를 만듭니다.최소화됨;
언급URL : https://stackoverflow.com/questions/7625421/minimize-app-to-system-tray
'programing' 카테고리의 다른 글
| OS X에서 $PATH(.bash_profile)를 어떻게 편집합니까? (0) | 2023.04.27 |
|---|---|
| Angular HttpClient에서 오류를 감지하는 중 (0) | 2023.04.27 |
| bash 스크립트에서 사용자에게 확인 메시지를 표시하려면 어떻게 해야 합니까? (0) | 2023.04.27 |
| MVVM은 무의미합니까? (0) | 2023.04.27 |
| Angular 버전을 얻는 방법은 무엇입니까? (0) | 2023.04.27 |