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

关于C# winform编程的1点疑问

2013-09-06 
关于C# winform编程的一点疑问 在C# WINDOW编程中 有form1和form2 我想实现 在form1上按一个按钮显示form2

关于C# winform编程的一点疑问
 在C# WINDOW编程中 有form1和form2 我想实现 在form1上按一个按钮显示form2 并且form1隐藏,关闭form2时form1又会重新出现。现在的问题是在form2关闭时,form1并不会重新出现,并且我给两个窗体都添加了关闭时要确认的代码,但是都没显示出来程序就关闭了~  到底是啥原因啊- -
 //form1的代码
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("确认退出?","询问", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                e.Cancel = false;
            }
            else
            {
                e.Cancel = true;
            }
        }
      
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 myForm2 = new Form2(this); 
            myForm2.Show();
            this.Hide();
  
        }
//FORM2的代码
 public partial class Form2 : Form
    {
        public static Form fp;
        public Form2(Form formPoint)
        {
            fp = formPoint;


            InitializeComponent();
        }

        public Form2()
        {
            InitializeComponent();
        }


        private void Form2_FormClosing(object sender, FormClosingEventArgs e)
        {
            fp.Show();
            if (MessageBox.Show("确认关闭?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                e.Cancel = false;
            }
            else
            {
                e.Cancel = true;
            }
        }

由于连提示的对话框都没有出现,所以我觉得问题出在FormClosing事件上 但是我又不知道具体是啥原因~ winform c# 窗体
[解决办法]
你窗体注册这些事件了吗
[解决办法]
下面的代码,能实现你所要的效果。点击按钮,隐藏当前,显示另一个form。可以循环操作。
refer:

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


 public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private Form form;
        public Form2(Form form)
        {
            InitializeComponent();
            this.form = form;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Hide();
            form.Show();
        }
    }


[解决办法]
fp.show() 写到 为真的条件中

热点排行