C# 窗体关闭按钮弹出选择提示框触发不同事件

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;    
    }    
}  

猜你喜欢

转载自blog.csdn.net/Zhang_0507/article/details/82218176