版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Zhang_0507/article/details/82218176
机房关闭时触发不同事件
因为messagebox的选择有限,所以只能通过窗体来模拟提示框
点击关闭按钮触发最小化
可以在主窗体的Closing事件中进行操作,大约如下:
privatevoid Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
// 取消关闭窗体
e.Cancel = true;
// 将窗体变为最小化
this.WindowState = FormWindowState.Minimized;
}
如果要实现最小化到托盘,则必须在窗体内加入控件notifyicon,并为其设置一个Icon,这个就是托盘上的小图标,然后在上面的代码中添加下列几行:
this.ShowInTaskbar = false; //不显示在系统任务栏
notifyIcon.Visible = true; //托盘图标可见
并且实现notifyIcon的DoubleClick事件,这个事件使得双击托盘图标可以让窗体回来:
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.Show();
this.WindowState = FormWindowState.Normal ;
this.ShowInTaskbar = true;
}
}
触发按钮事件
一个按钮触发另一个按钮,如果要跨窗体的按钮的事件,需要把被触发的按钮事件修改为public即可
private void button1_Click(object sender, EventArgs e)
{
this.button1.Click += new System.EventHandler(button2_Click);
//button2.PerformClick();
这2句都可以。
}
取消窗体的关闭功能
将FormClosingEventArgs的属性Cancel设置为true
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult result = MessageBox.Show("你确定要关闭吗!", "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
if (result == DialogResult.OK)
{
e.Cancel = false; //点击OK
}
else
{
e.Cancel = true;
}
}