using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 打开唯一窗体 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } List<Form> flist = new List<Form>(); private void button1_Click(object sender, EventArgs e) { bool has = false; Form2 f2 = new Form2(this); foreach(Form f in flist) { if(f is Form2) { has = true; f2 = f as Form2; } } if (has) { f2.WindowState = FormWindowState.Normal; //焦点进入 f2.Focus(); } else { flist.Add(f2); f2.Show(); } } public void deleteform(Form f) { flist.Remove(f); } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 打开唯一窗体 { public partial class Form2 : Form { Form1 F1 = null; public Form2(Form1 f1) { InitializeComponent(); F1 = f1; } private void Form2_FormClosing(object sender, FormClosingEventArgs e) { F1.deleteform(this); } } }