我想通过单击按钮显示另一个表单(Form2)。基本上,在Form1中单击按钮时,应该显示另一个表单(Form2),但这不应隐藏Form1,而应在Form1中将按钮文本更改为“ Hide Progress”。当再次单击此按钮时,Form2应该隐藏,并且按钮中的文本应更改为“ Show Progress”。
以下是我为完成这项工作而付出的努力。当我单击“显示进度按钮”时,它将带入Form2并同时更改按钮中的文本。但是,当我再次单击该按钮而不是隐藏Form2时,它将打开另一个Form2实例。
后面的原因可能是,布尔值未保存。
这是我的按钮事件处理程序代码。
public partial class Main : Form
{
public string output_green, output_grey, output_blue, output_black;
public bool visible;
private void button1_Click(object sender, EventArgs e)
{
output progressWindow = new output();
if (visible == false)
{
progressWindow.Show();
button1.Text = "Hide Progress";
visible = true;
}
else
{
progressWindow.Show();
button1.Text = "Show Progress";
visible = false;
}
}
}
我该如何实现我所需要的。
问题:
每单击一次button1
一个新progressWindow已初始化。
另外,您正在使用progressWindow.Show()
而不是Hide()
其他部分。
解决方案:
声明progressWindow
退出button1_Click
。然后从初始化它button1_Click
。现在,它将仅初始化一次(使用if
)。
output progressWindow = null;
private void button1_Click(object sender, EventArgs e)
{
if(progressWindow == null)
progressWindow = new output();
if (button1.Text == "Show Progress")
{
progressWindow.Show();
button1.Text = "Hide Progress";
}
else
{
progressWindow.Hide();
button1.Text = "Show Progress";
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句