如何禁用标题栏的关闭按钮,或者改变关闭按钮原有的关闭操作,让它执行最小化或是到系统托盘显示的操作,哪位大侠知道的告告啊~~~小弟先谢了~~
解决方案 »
- 关于sqlhelper的请教
- VS2008 如何在一个项目下不同工作之间设置依赖编译关系
- C#中 yy/MM/dd hh:mm:ss 这个类型的字符串 转换成datetime类型
- 【算法】求从多个名字中剔除重复名字(只留一个)的算法,汉字大约十五万
- 有C#习题方面的书吗?
- 在写入系统日志时怎么去掉 “有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。”
- 如何使Treeview的节点存储一主键值?
- 怎样用C#读取INI文件?
- 我的IDE环境下控件,不能删除,右键菜单被屏蔽,怎么解决?
- NTFS格式安装xp后老是死机!
- 我是初学者,请各位帮忙
- 谁有windows应用程序的图标(icon,png)
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE)
{
this.Visible = false; //隐藏
this.WindowState = FormWindowState.Minimized; //最小化
return;
}
base.WndProc(ref m);
}
{
e.Cancel = true;
}
yf1025(小桥,流水,人家)朋友的方法是C++的吧,呵呵,可惜小弟我不是很会~~
非常谢谢你们啊~~
//设置窗体属性:
ControlBox = false;
Text = "";
//修改窗体关闭的执行:
form1_Closing(...)
{
//你的操作
...
//如果不关闭窗体
e.Cancel = false;
}
/// 重写OnClosing使点击关闭按键时窗体能够缩进托盘
/// Author: 武眉博 [email protected]
/// 2005-4-27
/// </summary>
/// <param name="e"></param>
protected override void OnClosing(CancelEventArgs e)
{
this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized;
e.Cancel = true;
}
//传入的参数是第几个按钮禁用.相对于关闭按钮你传入int 类型 6 就可以了(关闭是系统菜单的第七个按钮) private void SetMenuDisable(int intC)
{
hwnMenu = GetSystemMenu(this.Handle,false);
EnableMenuItem(hwnMenu,intC,MF_BYPOSITION|MF_DISABLED);
}用到的两个API
[DllImport("user32", EntryPoint="EnableMenuItem")]
private static extern int EnableMenuItem (
IntPtr hMenu,
int wIDEnableItem,
int wEnable
); [DllImport("user32", EntryPoint="AppendMenu")]
private static extern int AppendMenu (
IntPtr hMenu,
int wFlags,
int wIDNewItem,
string lpNewItem
);用到的两个常数:
private const int MF_BYPOSITION=0x400;
private const int MF_ENABLED=0x0; //设为非禁用时用到
private const int MF_DISABLED=0x2;用到的命名空间:
using System.Runtime.InteropServices;
private static extern IntPtr GetSystemMenu (
IntPtr hwnd,
bool bRevert
);
把窗体的ControlBox设为false 就能取消显示关闭按钮。easy