好的,这是完整的问题。我在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)
{
}
}
}
答案 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时,它无法显示它已经被销毁。