日期:2014-05-19  浏览次数:20696 次

又一個棘手問題.
一個托盤程序,程序運行時,將主窗口隱藏在有下角.雙擊小圖標才顯示主窗口.應當怎麼處理呢?
偶在Load事件中用this.Hide();不能隱藏,應當怎麼處理呢?

------解决方案--------------------
最小化窗体到任务栏
经常可以看到这样的程序,点了关闭按扭后程序并没有关闭,而是最小化到了系统拖盘处,就像网易泡泡,MSN之类的程序。实现这个其实很简单,捕捉窗体关闭时的消息就可以了。代码如下:
protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE)
{
MessageBox.Show( "用户点了关闭按纽了 ");
return;
}
base.WndProc(ref m);
}
代码添加进窗体代码就可以
------解决方案--------------------
1.设置窗体属性showinTask=false
2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。
3.添加窗体最小化事件
private void Form1_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState==FormWindowState.Minimized)
{
this.Hide();
this.notifyIcon1.Visible=true;
}
}
4.添加点击图标事件

private void notifyIcon1_Click(object sender, EventArgs e)
{
this.Visible = true;

this.WindowState = FormWindowState.Normal;

this.notifyIcon1.Visible = false;
}
这样就可以了,已经通过程序验证,c#2005。