c#怎样用代码实现最小化窗口

c#怎样用代码实现最小化窗口,第1张

1.设置WinForm窗体属性showinTask=false

2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。

3.添加窗体最小化事件(首先需要添加事件引用):

this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged)

//上面一行是主窗体InitializeComponent()方法中需要添加的引用

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

}

5.可以给notifyIcon添加右键菜单:

主窗体中拖入一个ContextMenu控件NicontextMenu,点中控件,在上下文菜单中添加菜单,notifyIcon1的ContextMenu行为中选中NicontextMenu 作为上下文菜单。

this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components)

this.NicontextMenu = new System.Windows.Forms.ContextMenu()

this.menuItem_Hide = new System.Windows.Forms.MenuItem()

this.menuItem_Show = new System.Windows.Forms.MenuItem()

this.menuItem_Aubot = new System.Windows.Forms.MenuItem()

this.menuItem_Exit = new System.Windows.Forms.MenuItem()

this.notifyIcon1.ContextMenu = this.NicontextMenu

this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject( "NotifyIcon.Icon ")))

this.notifyIcon1.Text = " "

this.notifyIcon1.Visible = true

this.notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick)

this.notifyIcon1.Click += new System.EventHandler(this.notifyIcon1_Click)

this.NicontextMenu.MenuItems.AddRange(

new System.Windows.Forms.MenuItem[]

{

this.menuItem_Hide,

this.menuItem_Show,

this.menuItem_Aubot,

this.menuItem_Exit

}

)

//

// menuItem_Hide

//

this.menuItem_Hide.Index = 0

this.menuItem_Hide.Text = "隐藏 "

this.menuItem_Hide.Click += new System.EventHandler(this.menuItem_Hide_Click)

//

// menuItem_Show

//

this.menuItem_Show.Index = 1

this.menuItem_Show.Text = "显示 "

this.menuItem_Show.Click += new System.EventHandler(this.menuItem_Show_Click)

//

// menuItem_Aubot

//

this.menuItem_Aubot.Index = 2

this.menuItem_Aubot.Text = "关于 "

this.menuItem_Aubot.Click += new System.EventHandler(this.menuItem_Aubot_Click)

//

// menuItem_Exit

//

this.menuItem_Exit.Index = 3

this.menuItem_Exit.Text = "退出 "

this.menuItem_Exit.Click += new System.EventHandler(this.menuItem_Exit_Click)

protected override void OnClosing(CancelEventArgs e)

{

this.ShowInTaskbar = false

this.WindowState = FormWindowState.Minimized

e.Cancel = true

}

protected override void OnClosing(CancelEventArgs e)

{

//this.ShowInTaskbar = false

this.WindowState = FormWindowState.Minimized

e.Cancel = true

}

private void CloseCtiServer()

{

timer.Enabled = false

DJ160API.DisableCard()

this.NotifyIcon.Visible = false

this.Close()

this.Dispose()

Application.Exit()

}

private void HideCtiServer()

{

this.Hide()

}

private void ShowCtiServer()

{

this.Show()

this.WindowState = FormWindowState.Normal

this.Activate()

}

private void CtiManiForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)

{

this.CloseCtiServer()

}

private void menuItem_Show_Click(object sender, System.EventArgs e)

{

this.ShowCtiServer()

}

private void menuItem_Aubot_Click(object sender, System.EventArgs e)

{

}

private void menuItem_Exit_Click(object sender, System.EventArgs e)

{

this.CloseCtiServer()

}

private void menuItem_Hide_Click(object sender, System.EventArgs e)

{

this.HideCtiServer()

}

private void CtiManiForm_SizeChanged(object sender, System.EventArgs e)

{

if(this.WindowState == FormWindowState.Minimized)

{

this.HideCtiServer()

}

}

private void notifyIcon1_DoubleClick(object sender,System.EventArgs e)

{

this.ShowCtiServer()

}

按下ctrl+w,选择message maps,为你的类,选择消息WM_SYSCOMMAND,添加函数,然后在此函数中添加代码 nID表示消息类型,如下写,

if ( (nID == SC_MINIMIZE) || (nID == SC_CLOSE))

{

//这里写处理代码 .

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11745497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存