1.退出系统的信息提示
void FormMain_Closing(object sender, CancelEventArgs e)
{
DialogResult dr = MessageBox.Show("确定退出系统吗?", "退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
if (dr == DialogResult.OK)
{
//
//在这里请处理相关事务,比如保存等
//
Application.Exit();
}
else
{
e.Cancel = true;
}
}
2.C#中屏蔽窗体关闭的消息
经常可以看到这样的程序,点了关闭按扭后程序并没有关闭,而是最小化到了系统拖盘处,就像网易泡泡,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);
}
当然了也可以重写
protected override void OnClosed(EventArgs e)
{
}
这个函数就是窗体关闭时会调用的虚函数
3.C# WinForm 开机自动运行
第一种方法:
using Microsoft.Win32;
private void Form1_Load(object sender, EventArgs e)
{
//获取程序执行路径..
string starupPath = Application.ExecutablePath;
//class Micosoft.Win32.RegistryKey. 表示Window注册表中项级节点,此类是注册表装.
RegistryKey loca = Registry.LocalMachine;
RegistryKey run = loca.CreateSubKey(@"SOFTWARE/Microsoft/Windows/CurrentVersion/Run");
try
{
//SetValue:存储值的名称
run.SetValue("WinForm",starupPath);
MessageBox.Show("注册表添加成功!!",""提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
loca.Close();
}
catch(Exception ee)
{
MessageBox.Show(ee.Message.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
第二种方法:
添加到注册表里直接用代码写到注册表里,也可以手动添加.
E:D://tractor.exe//可以是你的程序名和完整路径就OK了.
也可以手动拖到启动里面....
RegistryKey hklm = Application.LocalMachine;
RegistryKey run = hklm.CreateSubKey(@"SOFTWARE/Microsoft/Windows/Current/Version/Run");
try
{
run.SetValue("tractor.exe","D://tractor.exe");
MessageBox.Show("注册表添加成功!!","提示",MessageBoxButton.OK, MessageBoxIcon.Information);
hklm.Close();
}
catch(Exception ee)
{
MessageBox.Show(my.Message.ToString(),"提示",MessageBoxButton.OK, MessageBoxIcon.Error);
}