下面的代碼片斷假設(shè)你的多文檔應(yīng)用程序中包含一個toolbar。當(dāng)你點擊toolBarButton1 按鈕時,將會創(chuàng)建并顯示一個 Patients 子窗口。下面的代碼在單機事件時發(fā)生。
private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e) { // a flag to store if the child form is opened or not bool found = false; if (e.Button == toolBarButton1) { // get all of the MDI children in an array Form[] charr = this.MdiChildren; if (charr.Length == 0) // no child form is opened { Patients myPatients = new Patients(); myPatients.MdiParent = this; // The StartPosition property is essential // for the location property to work myPatients.StartPosition = FormStartPosition.Manual; myPatients.Location = new Point(0,0); myPatients.Show(); } else // child forms are opened { foreach (Form chform in charr) { if (chform.Name == "Patients") // one instance of the form is already opened { chform.Activate(); found = true; break; // exit loop } else found = false; // make sure flag is set to // false if the form is not found } if (found == false) { Patients myPatients = new Patients(); myPatients.MdiParent = this; // The StartPosition property is essential // for the location property to work myPatients.StartPosition = FormStartPosition.Manual; myPatients.Location = new Point(0,0); myPatients.Show(); } } } } 這樣,就實現(xiàn)了一個單窗口實例的解決方案。
|