如何改变" this.ShowInTaskBar"对于" form.ShowDialog()"同时保持开放? [英] how to change "this.ShowInTaskBar" for a "form.ShowDialog()" while keeping it open?
本文介绍了如何改变" this.ShowInTaskBar"对于" form.ShowDialog()"同时保持开放?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果您运行在一个全新的winform应用程序这个片段的code(把它放在窗口1)用2种形式
if you run this snippet of code(put it in form1) in a fresh new winform app with 2 forms
private void Form1_Load(object sender, EventArgs e)
{
Form2 newForm = new Form2();
Button b = new Button();
newForm.Controls.Add(b);
b.Click += new EventHandler(click);
this.Show();
newForm.ShowDialog();
}
private void click(object sender, EventArgs e)
{
((Form)((Control)sender).Parent).ShowInTaskbar = false;
}
和你点击新的窗体上的按钮(应该是窗口2),窗口2将关闭。
and you click on the button on the new form(should be form2), form2 will close.
如何保持打开状态?
推荐答案
如何......我......这是一个丑陋的黑客
how... my... this is an ugly hack
这工作
private void Form1_Load(object sender, EventArgs e)
{
Form2 newForm = new Form2();
Button b = new Button();
newForm.Controls.Add(b);
b.Click += new EventHandler(click);
newForm.FormClosed += new FormClosedEventHandler(form2_closed);
newForm.FormClosing += new FormClosingEventHandler(form2_closing);
this.Show();
do
{
newForm.ShowDialog();
} while (newForm.IsDisposed == false );
}
private void click(object sender, EventArgs e)
{
((Form)((Control)sender).Parent).ShowInTaskbar = !((Form)((Control)sender).Parent).ShowInTaskbar;
}
private void form2_closed(object sender, FormClosedEventArgs e)
{
((Form)sender).Dispose();
}
private void form2_closing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.None)
e.Cancel = true;
}
这篇关于如何改变" this.ShowInTaskBar"对于" form.ShowDialog()"同时保持开放?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文