C#中的表单1挂起

时间:2013-12-21 15:01:22

标签: c# .net

好的,这是完整的问题。我在C#中创建了一个简单的应用程序,显示当前的日期和时间。时间&它有一个“关于”按钮通过这个按钮我已经打开Form2显示我的名字。一切正常,但每当我打开Form2&关闭它(即通过点击Form2窗口框架上的“X”按钮)&再次,如果我点击“关于”按钮Form1冻结&挂断了。

这是代码Form1代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Date
{
    public partial class Form1 : Form
    {
        Form3 SecondForm = new Form3();
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            this.label2.Text = DateTime.Now.ToString(" hh:mm:ss tt");
            label4.Text = DateTime.Now.ToString(" dd-MM-yyyy ");
        }

        private void about_btn_Click(object sender, EventArgs e)
        {
            SecondForm.Show();
        }
    }
}  



这是Form2代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Date
{
    public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }

        private void Form3_Load(object sender, EventArgs e)
        {
        }
    }
}

1 个答案:

答案 0 :(得分:2)

每当你想要像这样展示它时,你需要创建你的SecondForm

namespace Date
{
public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        this.label2.Text = DateTime.Now.ToString(" hh:mm:ss tt");
        label4.Text = DateTime.Now.ToString(" dd-MM-yyyy ");
    }

    private void about_btn_Click(object sender, EventArgs e)
    {
        Form3 secondForm = new Form3();
        secondForm.Show();
    }
}
}  

原始代码中的问题是,当表单关闭时,它会尝试销毁控件,数据,并且当您尝试再次调用Show时,它无法显示它已经被销毁。