c# 从form1中点击按钮显示form2,再次点击此按钮关闭form2,怎么写啊,我的代码中form2.Close();没作用啊

publicboolenabled_show_image;privatevoidbutton1_Click(objectsender,EventArgse){Form2f... public bool enabled_show_image;
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();

//string text = this.button1.Text;
string str1 = "Img.Show";
string str2 = "Img.Close";

if (enabled_show_image)
{
enabled_show_image = false;
this.button1.Text = str1;
form2.Close();
return;
}
enabled_show_image = true;
this.button1.Text = str2;
form2.Show();
}
展开
 我来答
活宝运气
2019-04-19 · 超过71用户采纳过TA的回答
知道小有建树答主
回答量:149
采纳率:89%
帮助的人:21.6万
展开全部

你没有理解引用类型,这里你的代码 每次都会重新new 一个form2的实例 你这个实例的show和close 跟上一个没有任何关系,也就是说 他们并不是同一个东西,需要把form2提取出去成为公共变量  代码可以改成 

 Form2 form2 = null;
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (form2 == null || !form2.IsVisible)
            {
                form2 = new Form2();
                form2.Show();
            }
            else
                form2.Close();
        }
追问

谢谢 不过更改后有报错

果果的云盘鸭
2019-04-19 · 超过16用户采纳过TA的回答
知道答主
回答量:168
采纳率:34%
帮助的人:11.9万
展开全部
1
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
}
或者
//直接显示
Form2 f2 = new Form2();
f2.Show();
//对话框模式
Form2 f2 = new Form2();
f2.ShowDialog();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
司马刀剑
高粉答主

2019-04-19 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7474万
展开全部
1
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式