C#窗体还原事件
privatevoidForm1_Resize(objectsender,EventArgse){if(this.WindowState==FormWindowState...
private void Form1_Resize(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)//窗口状态为最小化时
{
this.Hide();//隐藏窗口
this.notifyIcon1.Visible = true;
}
}
private void notifyIcon1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
notifyIcon1.ContextMenuStrip = contextMenuStrip2;
}
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void 还原ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.WindowState =FormWindowState.Maximized;
this.Show();
notifyIcon1.Visible = false;
}
怎么写才能按还原按钮还原到最小化之前的大小 展开
{
if (this.WindowState == FormWindowState.Minimized)//窗口状态为最小化时
{
this.Hide();//隐藏窗口
this.notifyIcon1.Visible = true;
}
}
private void notifyIcon1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
notifyIcon1.ContextMenuStrip = contextMenuStrip2;
}
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void 还原ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.WindowState =FormWindowState.Maximized;
this.Show();
notifyIcon1.Visible = false;
}
怎么写才能按还原按钮还原到最小化之前的大小 展开
展开全部
窗体的关闭事件
对于关注对 Windows 窗体应用程序中引发的每个事件按次序进行处理的开发人员来说,事件引发的顺序特别重要。
当 Windows 窗体应用程序启动时,主窗体的启动事件按以下顺序引发
1、System.Windows.Forms.Control.HandleCreated
在为控件创建句柄时发生
2、System.Windows.Forms.Control.BindingContextChanged
当 BindingContext 属性的值更改时发生
注:每个 Windows 窗体至少有一个 BindingContext 对象,详见MSDN
3、System.Windows.Forms.Form.Load
在第一次显示窗体前发生
4、System.Windows.Forms.Control.VisibleChanged
在 Visible 属性值更改时发生
注:如果通过编程修改或用户交互更改 Visible 属性,则将引发此事件
5、System.Windows.Forms.Form.Activated
当使用代码激活或用户激活窗体时发生
6、System.Windows.Forms.Form.Shown
只有在首次显示窗体时才会引发 Shown 事件;随后执行的最小化、最大化、还原、隐藏、显示或无效化和重新绘制操作都不会引发该事件。
当应用程序关闭时,主窗体的关闭事件按以下顺序引发:
1、System.Windows.Forms.Form.Closing
在关闭窗体时发生
注意:在 .NET Framework 版本 2.0 中,Closing 事件已过时,应改用 FormClosing 事件。
2、System.Windows.Forms.Form.FormClosing
在关闭窗体前发生,此时可以取消窗体的关闭。
3、System.Windows.Forms.Form.Closed
关闭窗体后发生
注意:在 .NET Framework 版本 2.0 中,Closed 事件已过时,应改用 FormClosed 事件。
4、System.Windows.Forms.Form.FormClosed
关闭窗体后发生
5、System.Windows.Forms.Form.Deactivate
当窗体失去焦点并不再是活动窗体时发生
注意:当调用 Application.Exit 方法以退出应用程序时,不引发 Form.Closed 和 Form.Closing 事件,但是会激发 Form.FormClosed 和 Form.FormClosing 事件。
FormClosing :
在窗体关闭时,FormClosing 事件发生。窗体关闭时,此事件会得到处理,从而释放与此窗体关联的所有资源。如果取消此事件,则该窗体保持打开状态。若要取消窗体的关闭操作,请将传递给事件处理程序的 FormClosingEventArgs 的 Cancel 属性设置为 true。
FormClosed:
在用户或 Application 类的 Close 方法或 Exit 方法关闭窗体后,会发生 FormClosed 事件。
若要防止窗体关闭,请处理 FormClosing 事件,并将传递给事件处理程序的 CancelEventArgs 的 Cancel 属性设置为 true。可以使用此事件执行一些任务,如释放窗体使用的资源,还可使用此事件保存输入窗体中的信息或更新其父窗体。 当窗体显示为模式对话框时,单击“关闭”按钮(窗体右上角带 X 的按钮)会隐藏窗体并将 DialogResult 属性设置为 DialogResult.Cancel。通过在窗体的 FormClosing 事件的事件处理程序中设置 DialogResult 属性,可以在用户单击“关闭”按钮时重写分配给 DialogResult 属性的值。
如果窗体是多文档界面 (MDI) 父窗体,则在引发 MDI 父窗体的 FormClosing 事件之前将引发所有 MDI 子窗体的 FormClosing 事件。同样,在引发 MDI 父窗体的 FormClosed 事件之前,将引发所有 MDI 子窗体的 FormClosed 事件。取消 MDI 子窗体的 FormClosing 事件不能防止引发 MDI 父窗体的 FormClosing 事件。但是,取消该事件会将作为参数传递给父窗体的 FormClosingEventArgs 类的 Cancel 属性设置成 false。要强制关闭所有 MDI 父窗体和子窗体,请将 MDI 父窗体中的 Cancel 属性设置成 false。
窗体显示为无模式对话框时,在close之后,此窗体的资源已释放,不能再调用show方法使窗体可见。
窗体显示为有模式对话框时,单击 关闭 按钮 (" X " 的按钮在窗体的右上角) 会隐藏窗体并且DialogResult 属性将设置为 DialogResult.Cancel。 当用户单击该对话框的关闭的窗体按钮或设置 DialogResult 属性的值时, .NET framework不调用Close 方法,该窗体会隐藏并可重新显示,而不必创建对话框的新实例。 由于作为对话框中显示的窗体隐藏而未关闭,当窗体由应用程序时不再需要,必须调用该窗体的 Dispose 方法。
在以下两种情况下调用 Close 不会释放窗体:(1) 窗体是多文档界面 (MDI) 应用程序的一部分且是不可见的;(2)该窗体是模式对话框。 在这些情况下,需要手动调用 Dispose 来将窗体的所有控件都标记为需要进行垃圾回收。
/// <summary>
/// 最小化到托盘程序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void notifyIcon1_Click(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Normal)
{
this.WindowState = FormWindowState.Minimized; HiddenForm();
}
else if (this.WindowState == FormWindowState.Minimized)
{
ShowForm();
}
}
private void FrmMain_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)//最小化
{
HiddenForm();
}
}
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
HiddenForm();
}
/// <summary>
/// 显示窗口
/// </summary>
private void ShowForm()
{
this.Show();
this.WindowState = FormWindowState.Normal;
this.ShowInTaskbar = true;
this.Activate();
} /// <summary>
/// 隐藏窗口
/// </summary>
private void HiddenForm()
{
this.Hide();
}
对于关注对 Windows 窗体应用程序中引发的每个事件按次序进行处理的开发人员来说,事件引发的顺序特别重要。
当 Windows 窗体应用程序启动时,主窗体的启动事件按以下顺序引发
1、System.Windows.Forms.Control.HandleCreated
在为控件创建句柄时发生
2、System.Windows.Forms.Control.BindingContextChanged
当 BindingContext 属性的值更改时发生
注:每个 Windows 窗体至少有一个 BindingContext 对象,详见MSDN
3、System.Windows.Forms.Form.Load
在第一次显示窗体前发生
4、System.Windows.Forms.Control.VisibleChanged
在 Visible 属性值更改时发生
注:如果通过编程修改或用户交互更改 Visible 属性,则将引发此事件
5、System.Windows.Forms.Form.Activated
当使用代码激活或用户激活窗体时发生
6、System.Windows.Forms.Form.Shown
只有在首次显示窗体时才会引发 Shown 事件;随后执行的最小化、最大化、还原、隐藏、显示或无效化和重新绘制操作都不会引发该事件。
当应用程序关闭时,主窗体的关闭事件按以下顺序引发:
1、System.Windows.Forms.Form.Closing
在关闭窗体时发生
注意:在 .NET Framework 版本 2.0 中,Closing 事件已过时,应改用 FormClosing 事件。
2、System.Windows.Forms.Form.FormClosing
在关闭窗体前发生,此时可以取消窗体的关闭。
3、System.Windows.Forms.Form.Closed
关闭窗体后发生
注意:在 .NET Framework 版本 2.0 中,Closed 事件已过时,应改用 FormClosed 事件。
4、System.Windows.Forms.Form.FormClosed
关闭窗体后发生
5、System.Windows.Forms.Form.Deactivate
当窗体失去焦点并不再是活动窗体时发生
注意:当调用 Application.Exit 方法以退出应用程序时,不引发 Form.Closed 和 Form.Closing 事件,但是会激发 Form.FormClosed 和 Form.FormClosing 事件。
FormClosing :
在窗体关闭时,FormClosing 事件发生。窗体关闭时,此事件会得到处理,从而释放与此窗体关联的所有资源。如果取消此事件,则该窗体保持打开状态。若要取消窗体的关闭操作,请将传递给事件处理程序的 FormClosingEventArgs 的 Cancel 属性设置为 true。
FormClosed:
在用户或 Application 类的 Close 方法或 Exit 方法关闭窗体后,会发生 FormClosed 事件。
若要防止窗体关闭,请处理 FormClosing 事件,并将传递给事件处理程序的 CancelEventArgs 的 Cancel 属性设置为 true。可以使用此事件执行一些任务,如释放窗体使用的资源,还可使用此事件保存输入窗体中的信息或更新其父窗体。 当窗体显示为模式对话框时,单击“关闭”按钮(窗体右上角带 X 的按钮)会隐藏窗体并将 DialogResult 属性设置为 DialogResult.Cancel。通过在窗体的 FormClosing 事件的事件处理程序中设置 DialogResult 属性,可以在用户单击“关闭”按钮时重写分配给 DialogResult 属性的值。
如果窗体是多文档界面 (MDI) 父窗体,则在引发 MDI 父窗体的 FormClosing 事件之前将引发所有 MDI 子窗体的 FormClosing 事件。同样,在引发 MDI 父窗体的 FormClosed 事件之前,将引发所有 MDI 子窗体的 FormClosed 事件。取消 MDI 子窗体的 FormClosing 事件不能防止引发 MDI 父窗体的 FormClosing 事件。但是,取消该事件会将作为参数传递给父窗体的 FormClosingEventArgs 类的 Cancel 属性设置成 false。要强制关闭所有 MDI 父窗体和子窗体,请将 MDI 父窗体中的 Cancel 属性设置成 false。
窗体显示为无模式对话框时,在close之后,此窗体的资源已释放,不能再调用show方法使窗体可见。
窗体显示为有模式对话框时,单击 关闭 按钮 (" X " 的按钮在窗体的右上角) 会隐藏窗体并且DialogResult 属性将设置为 DialogResult.Cancel。 当用户单击该对话框的关闭的窗体按钮或设置 DialogResult 属性的值时, .NET framework不调用Close 方法,该窗体会隐藏并可重新显示,而不必创建对话框的新实例。 由于作为对话框中显示的窗体隐藏而未关闭,当窗体由应用程序时不再需要,必须调用该窗体的 Dispose 方法。
在以下两种情况下调用 Close 不会释放窗体:(1) 窗体是多文档界面 (MDI) 应用程序的一部分且是不可见的;(2)该窗体是模式对话框。 在这些情况下,需要手动调用 Dispose 来将窗体的所有控件都标记为需要进行垃圾回收。
/// <summary>
/// 最小化到托盘程序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void notifyIcon1_Click(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Normal)
{
this.WindowState = FormWindowState.Minimized; HiddenForm();
}
else if (this.WindowState == FormWindowState.Minimized)
{
ShowForm();
}
}
private void FrmMain_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)//最小化
{
HiddenForm();
}
}
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
HiddenForm();
}
/// <summary>
/// 显示窗口
/// </summary>
private void ShowForm()
{
this.Show();
this.WindowState = FormWindowState.Normal;
this.ShowInTaskbar = true;
this.Activate();
} /// <summary>
/// 隐藏窗口
/// </summary>
private void HiddenForm()
{
this.Hide();
}
展开全部
你本意是在最小化的时候将画面隐藏对吧?
初始化
this.ShowInTaskbar = false;
private void Form1_SizeChanged(object sender, EventArgs e)
{
switch (this.WindowState)
{
case FormWindowState.Minimized:
{
this.Visible = false;
break;
}
default:
{
this.Visible = true;
break;
}
}
}
右下角图标的处理,只要修改WindowState的状态就可以了,不影响恢复按钮的处理
初始化
this.ShowInTaskbar = false;
private void Form1_SizeChanged(object sender, EventArgs e)
{
switch (this.WindowState)
{
case FormWindowState.Minimized:
{
this.Visible = false;
break;
}
default:
{
this.Visible = true;
break;
}
}
}
右下角图标的处理,只要修改WindowState的状态就可以了,不影响恢复按钮的处理
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private void button2_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
this.notifyIcon1.Visible = true;
}
private void button3_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}
private void 还原ToolStripMenuItem_Click(object sender, EventArgs e)
{
button3.PerformClick();
}
{
this.WindowState = FormWindowState.Minimized;
this.notifyIcon1.Visible = true;
}
private void button3_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}
private void 还原ToolStripMenuItem_Click(object sender, EventArgs e)
{
button3.PerformClick();
}
追问
你确定可以 还原按钮一按就变成,是不是因为我添加了Form-SizeChanged事件的缘故
追答
有可能,我试过了,可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |