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 Test { public class Form1 : Form { public Form1() { InitializeComponent(); } private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(89, 146); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(115, 23); this.button1.TabIndex = 0; this.button1.Text = "Create New Form"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.Add(this.button1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); } #endregion private System.Windows.Forms.Button button1; private void button1_Click(object sender, EventArgs e) { MyForm frm = new MyForm(); if (frm.CanShowForm()) frm.Show(); else frm.Close(); } } public class MyForm : Form { public bool CanShowForm() { if (0 == 1) // obviously replace this with real test return true; return false; } } }