首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

form窗体关闭有关问题

2013-08-01 
form窗体关闭问题有2个窗体form1和form2,form1中有个label和一个button,form2中有一个textbox和一个button

form窗体关闭问题
有2个窗体form1和form2,form1中有个label和一个button,form2中有一个textbox和一个button,我想点击form1中button使form2出现,而且form1不关闭,然后用form2中button_click事件使textbox传值给form1中label,然后form2关闭。这时候会有2个form1,求解怎么能让那个没值的form1不显示啊。
form1中button_click事件


private void button1_Click(object sender, EventArgs e)
{
        Form2 fm = new Form2();
        fm.Show();
}

form2中button_click事件
        
private void button1_Click(object sender, EventArgs e)
{
        fm1.Visible = false;
        this.fm1.label1.Text = this.textBox1.Text;
        fm1.Show();
        this.Close();
}
对象 textbox label button
[解决办法]


public string Result {get;set;}
private void button1_Click(object sender, EventArgs e)
{
        Form2 fm = new Form2();
        if(fm.ShowDialog()==DialogResult.OK)
            {
 fm.Result的值用来做什么?
    }

}

2的:
private void button1_Click(object sender, EventArgs e)
{
        Result="abc";
this.DialogResult=DialogResult.OK;
Close();
}

怎么会有两个Form1
[解决办法]
基本原理没搞懂啊!在WINFORM 程序中有个program..cs文件 里面默认哪一个是主窗体,所以如果form1是主窗体那么 是关不掉的 除非强制关闭Application.Exit() 那样整个进程会关闭. 你可以 fm1.hide();隐藏起来试试!如果都不是主窗体 那么ShowDialog()弹框 然后根据DialogResult.ok 返回值然后frm1关闭
[解决办法]
引用:
form2中button_click事件


        
private void button1_Click(object sender, EventArgs e)
{
        fm1.Visible = false;
        this.fm1.label1.Text = this.textBox1.Text;
        fm1.Show();
        this.Close();
}

上面frm1是new 出来的吧,这个应该是出现2个窗体的原因吧。
如果用ShowDialog()的话,不需要new frm1的,在form2中追加个属性,#5楼的稍微改了下:

Form1的


private void button1_Click(object sender, EventArgs e)
{
        Form2 fm = new Form2();
        if(fm.ShowDialog()==DialogResult.OK)
            {
      lable1.text =fm.Result 
    }
 
}
 
2的:
public string Result {get;set;}
private void button1_Click(object sender, EventArgs e)
{
        Result=text1.text;
this.DialogResult=DialogResult.OK;
Close();
}

热点排行