c#中怎么用一个窗口关闭另一个窗口

privatevoidbuttonShowForm_Click(objectsender,EventArgse){SubFormSubFormTest=newSubFor... private void buttonShowForm_Click(object sender, EventArgs e)
{
SubForm SubFormTest = new SubForm();
SubFormTest.Show();
buttonShowForm.Enabled = false;
}

private void buttonHideSubForm_Click(object sender, EventArgs e)
{
SubForm SubFormTest = new SubForm();
SubFormTest.Close();
}
这是我的代码,但是在代开子窗口后无法关闭了
展开
 我来答
surplushaode
2011-05-13 · TA获得超过2055个赞
知道大有可为答主
回答量:2510
采纳率:0%
帮助的人:2365万
展开全部
你这样是关不掉的。。你可以将子窗体的定义放到父窗体的整个程序开始的,也就是说定义一个全局变量的。。然后在某些地方打开,某些地方关闭的。。
还有另外一种方式的。做成多窗体的形式的,也就是说一个作为父窗体,另外一个作为子窗体,用MDIPARENT的方式来关闭或者MDICHILDREN的方式来关闭。
百度网友d242235
2011-05-13 · TA获得超过2385个赞
知道大有可为答主
回答量:1403
采纳率:84%
帮助的人:809万
展开全部
这问题问的太不应该了,你对面向对象的基本概念还不了解。
你在一个按钮的单击事件里初始化了一个新窗体SubForm,这就创建了一个对象。如果要关闭它,首先要取得这个对象的引用。方法就是把窗体定义成窗体变量。
private class SubForm subForm;

private void buttonShowForm_Click(object sender, EventArgs e)
{
if(subForm != null)
{
subForm.Close();
}
subForm = new SubFomr();
subForm.Show();
buttonShowForm.Enabled = false;
}

private void buttonHideSubForm_Click(object sender, EventArgs e)
{
subForm.Close();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
is8888
2011-05-13 · TA获得超过695个赞
知道小有建树答主
回答量:530
采纳率:0%
帮助的人:562万
展开全部
你好,你的这个代码很有问题!!!
两个事件中打开了不同的窗口,在buttonShowForm_Click(object sender, EventArgs e)中打开了一个窗口;在buttonHideSubForm_Click(object sender, EventArgs e)中也打开了一个窗口,但是马上就关闭了(这个窗口你是看不到的,因为执行速度很快,马上就关闭了)。
出现这种情况是你没有搞懂变量的作用范围造成的。在每个事件中创建的实体是不同的,虽然名字相同,但是因为在不同的作用范围内,因此事实上是不同的对象。
这里也可以看出你对程序的理解上还是需要在努点力才行。下面我替你改了下,你试试。

private SubForm SubFormTest = new SubForm();
private void buttonShowForm_Click(object sender, EventArgs e)
{
this.SubFormTest.Show();
buttonShowForm.Enabled = false;
}

private void buttonHideSubForm_Click(object sender, EventArgs e)
{
this.SubFormTest.Close();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式