去掉任务栏右键关闭程序

小K的大师兄 2013-07-08 09:22:22
在C#中 怎样实现把再任务栏右键关闭程序这个功能给隐藏掉 就是实现点击右键不能关闭应用程序
...全文
541 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
verysharp 2013-07-15
  • 打赏
  • 举报
回复
引用 8 楼 benbenRH 的回复:

 private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
       if (e.CloseReason == CloseReason.UserClosing)
       {
             e.Cancel = true;
       }
}
        
e.CloseReason还有其它关闭的情况的,你根据你的情况选择哪种情况不关闭,就把e.Cancel设为true就会不关闭的了!
有必要的话加一个全局变量来控制是否关闭“主窗体” 不推荐把这个右键功能去掉
benbenRH 2013-07-10
  • 打赏
  • 举报
回复

 private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
       if (e.CloseReason == CloseReason.UserClosing)
       {
             e.Cancel = true;
       }
}
        
e.CloseReason还有其它关闭的情况的,你根据你的情况选择哪种情况不关闭,就把e.Cancel设为true就会不关闭的了!
小K的大师兄 2013-07-09
  • 打赏
  • 举报
回复
引用 5 楼 dongjianhua520520 的回复:
晕。 感觉你的说法好怪异。 如果任务栏有你的程序说明你用了托盘图标。 如果右键能单击的话说明你用了右键菜单。 可是如果你想右键不能关闭为啥要给其关联右键菜单?为啥又要放到托盘?
我需要托盘菜单,只是想把右键菜单给屏蔽掉 该怎样做 程序是用WPF写的
dongjianhua520520 2013-07-08
  • 打赏
  • 举报
回复
晕。 感觉你的说法好怪异。 如果任务栏有你的程序说明你用了托盘图标。 如果右键能单击的话说明你用了右键菜单。 可是如果你想右键不能关闭为啥要给其关联右键菜单?为啥又要放到托盘?
橘色的喵 2013-07-08
  • 打赏
  • 举报
回复
引用 3 楼 superliu1122 的回复:
http://hi.baidu.com/wcsjsdn/item/919915c23f8f0624ee4665bb 随便一搜就能找到
thx,个人喜欢第三个方法 using System.Runtime.InteropServices; //禁用关闭按钮需要引用这个 /***************************禁用关闭按钮需要***********************/ [DllImport("USER32.DLL")] public static extern int GetSystemMenu(int hwnd, int bRevert); [DllImport("USER32.DLL")] public static extern int RemoveMenu(int hMenu, int nPosition, int wFlags); const int MF_REMOVE = 0x1000; const int SC_RESTORE = 0xF120; //还原 const int SC_MOVE = 0xF010; //移动 const int SC_SIZE = 0xF000; //大小 const int SC_MINIMIZE = 0xF020; //最小化 const int SC_MAXIMIZE = 0xF030; //最大化 const int SC_CLOSE = 0xF060; //关闭 /******************************************************************/ private void Form_Load(object sender, EventArgs e) { /***************************禁用关闭按钮需要***********************/ int hMenu = GetSystemMenu(this.Handle.ToInt32(), 0); RemoveMenu(hMenu, SC_CLOSE, MF_REMOVE); /******************************************************************/ } 这两种方法都是很平常的方法,调用API函数,这种有时在利用第三方控件后,方法失效。那么,还是推荐第一种方法。
superliu1122 2013-07-08
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
在WinFrom程序把FormBorderStyle设置为None,用以隐藏标题栏。 这样有程序在任务栏上,点右键的时候没有关闭菜单。
橘色的喵 2013-07-08
  • 打赏
  • 举报
回复
这个恐怕要重写WndProc(ref Message m)了吧?
_小黑_ 2013-07-08
  • 打赏
  • 举报
回复
好吧 学习了

111,098

社区成员

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

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

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