public chat(string title):this()
{
   this.lblGuest.Text = title;
   this.Text = "与"+title+"聊天中...";
}
...
-----------------------------
chat ch = new chat(guestid);
ch.Show();想实现当title一样时,窗体只能出现一个,不知怎么写?

解决方案 »

  1.   

        internal partial class Form2 : Form
        {
            private static Dictionary<string, Form2> frmDict = new Dictionary<string, Form2>();        private Form2(string title)
            {
                InitializeComponent();
                if (frmDict.ContainsKey(title))
                    throw new Exception("已存在该窗体!");
                frmDict.Add(title, this);
            }        public static void ShouForm2(string title)
            {
                Form2 frm;
                if (frmDict.ContainsKey(title))
                    frm = frmDict[title];
                else
                    frm = new Form2(title);
                frm.Show();
            }
        }
      

  2.   

    public static void ShouForm2(string title)
            {
                Form2 frm;
                if (frmDict.ContainsKey(title))
                    frm = frmDict[title];
                else
                    frm = new Form2(title);
                frm.Show();
            }
    -----------
    是在另外一个窗体中打开这个窗体的,要怎么写??
      

  3.   

    有一个chatmain窗体,上面有一排用户列表,当点击某个用户时就开一个新的chat窗口.
    如果已经打开过与这个用户的chat,当再次点击时就让以前打开的窗口得到焦点.如果没有打开过就新开一个窗体.
    大致就是这样...
      

  4.   


    public partial class FmMdiMain : Form
    {
            private static chat fmmain;
            private void MnuOpen_Click(object sender, EventArgs e)
            {
                if (fmmain==null||fmmain.IsDisposed) fmmain = new chat(guestid);
                fmmain.MdiParent = this;
                fmmain.Show();
            }
    }