WinForm里面怎么样最小化到系统托盘?

MScharlie 2004-10-04 05:30:42
谢谢
...全文
324 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
trnbo 2004-10-28
  • 打赏
  • 举报
回复
参考这个

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true; // 取消关闭窗体
this.Hide();
//this.notifyIcon1.Visible =true;
}


private void notifyIcon1_DoubleClick(object sender, System.EventArgs e)
{
if( _mouseButtonsLeftFlag == true )
{
if(this.Visible == true) //根据窗口的显示和隐藏设置Trayico对象的显示
{
//this.Hide();
//this.notifyIcon1.Visible =true;
}
else
{
this.Show();
//this.notifyIcon1.Visible = true;
}
if (this.WindowState == FormWindowState.Minimized)
this.WindowState = FormWindowState.Normal;

// Activate the form.
this.Activate();
}

}
tashanzhishi 2004-10-14
  • 打赏
  • 举报
回复
重载消息处理,截获命令消息,判断是不是关闭和最小华,如果是的话就隐藏窗体
protected override void DefWndProc( ref System.Windows.Forms.Message m )
{
switch(m.Msg)
{
case 0x0112:
switch(m.WParam.ToInt32())
{
case 61472:
case 61536:
HideWindow() ;
break ;
default:
base.DefWndProc(ref m);
break ;

}
  break;
default:
  base.DefWndProc(ref m);///调用基类函数处理非自定义消息。
  break;
}
}
jinbingg 2004-10-14
  • 打赏
  • 举报
回复
up
楠爵 2004-10-14
  • 打赏
  • 举报
回复
up
zjy118 2004-10-13
  • 打赏
  • 举报
回复
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true; // 取消关闭窗体
this.Hide();
//this.notifyIcon1.Visible =true;
}


private void notifyIcon1_DoubleClick(object sender, System.EventArgs e)
{
if( _mouseButtonsLeftFlag == true )
{
if(this.Visible == true) //根据窗口的显示和隐藏设置Trayico对象的显示
{
//this.Hide();
//this.notifyIcon1.Visible =true;
}
else
{
this.Show();
//this.notifyIcon1.Visible = true;
}
if (this.WindowState == FormWindowState.Minimized)
this.WindowState = FormWindowState.Normal;

// Activate the form.
this.Activate();
}

}

freehul 2004-10-04
  • 打赏
  • 举报
回复
设置窗体的ShowInTaskbar 属性为False就行了
MScharlie 2004-10-04
  • 打赏
  • 举报
回复
我的意思是
点最小化按纽之后
程序不显示在任务栏
而只显示在系统托盘
freehul 2004-10-04
  • 打赏
  • 举报
回复
WinForm里带了有NotifyIcon控件,这是一个指定在状态区域创建图标的组件。
不需要添加,工具栏里就有!
下面是MSDN带的示例:
using System;
using System.Drawing;
using System.Windows.Forms;

public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.NotifyIcon notifyIcon1;
private System.Windows.Forms.ContextMenu contextMenu1;
private System.Windows.Forms.MenuItem menuItem1;
private System.ComponentModel.IContainer components;

[STAThread]
static void Main()
{
Application.Run(new Form1());
}

public Form1()
{
this.components = new System.ComponentModel.Container();
this.contextMenu1 = new System.Windows.Forms.ContextMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();

// Initialize contextMenu1
this.contextMenu1.MenuItems.AddRange(
new System.Windows.Forms.MenuItem[] {this.menuItem1});

// Initialize menuItem1
this.menuItem1.Index = 0;
this.menuItem1.Text = "E&xit";
this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);

// Set up how the form should be displayed.
this.ClientSize = new System.Drawing.Size(292, 266);
this.Text = "Notify Icon Example";

// Create the NotifyIcon.
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);

// The Icon property sets the icon that will appear
// in the systray for this application.
notifyIcon1.Icon = new Icon("appicon.ico");

// The ContextMenu property sets the menu that will
// appear when the systray icon is right clicked.
notifyIcon1.ContextMenu = this.contextMenu1;

// The Text property sets the text that will be displayed,
// in a tooltip, when the mouse hovers over the systray icon.
notifyIcon1.Text = "Form1 (NotifyIcon example)";
notifyIcon1.Visible = true;

// Handle the DoubleClick event to activate the form.
notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick);

}

protected override void Dispose( bool disposing )
{
// Clean up any components being used.
if( disposing )
if (components != null)
components.Dispose();

base.Dispose( disposing );
}

private void notifyIcon1_DoubleClick(object Sender, EventArgs e)
{
// Show the form when the user double clicks on the notify icon.

// Set the WindowState to normal if the form is minimized.
if (this.WindowState == FormWindowState.Minimized)
this.WindowState = FormWindowState.Normal;

// Activate the form.
this.Activate();
}

private void menuItem1_Click(object Sender, EventArgs e) {
// Close the form, which closes the application.
this.Close();
}
}

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧