Windows Form File /Utils/ModalBaseForm.cs (C#)
using System;  
using System.Drawing;  
using System.Collections;  
using System.ComponentModel;  
using System.Windows.Forms;  
  
namespace YariSoft.Utils  
{  
    public class ModalBaseForm : System.Windows.Forms.Form  
    {  
        protected System.Windows.Forms.Panel bottomPanel;  
        protected System.Windows.Forms.Button cancelButton;  
        protected System.Windows.Forms.Button okButton;  
        #region Local variables  
  
        private System.ComponentModel.Container components = null;  
        #endregion  
  
        #region Constructor/Destructor  
        public ModalBaseForm()  
        {  
            InitializeComponent();  
        }  
        protected override void Dispose( bool disposing )  
        {  
            if( disposing )  
            {  
                if(components != null)  
                {  
                    components.Dispose();  
                }  
            }  
            base.Dispose( disposing );  
        }  
        #endregion  
  
        #region Windows Form Designer generated code  
        /// <summary>  
        /// Required method for Designer support - do not modify  
        /// the contents of this method with the code editor.  
        /// </summary>  
        private void InitializeComponent()  
        {  
            this.bottomPanel = new System.Windows.Forms.Panel();  
            this.cancelButton = new System.Windows.Forms.Button();  
            this.okButton = new System.Windows.Forms.Button();  
            this.bottomPanel.SuspendLayout();  
            this.SuspendLayout();  
            //    
            // bottomPanel  
            //    
            this.bottomPanel.Controls.AddRange(new System.Windows.Forms.Control[] {  
                                                                                      this.cancelButton,  
                                                                                      this.okButton});  
            this.bottomPanel.Dock = System.Windows.Forms.DockStyle.Bottom;  
            this.bottomPanel.Location = new System.Drawing.Point(0, 238);  
            this.bottomPanel.Name = "bottomPanel";  
            this.bottomPanel.Size = new System.Drawing.Size(292, 35);  
            this.bottomPanel.TabIndex = 1;  
            //    
            // cancelButton  
            //    
            this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;  
            this.cancelButton.Location = new System.Drawing.Point(208, 8);  
            this.cancelButton.Name = "cancelButton";  
            this.cancelButton.TabIndex = 1;  
            this.cancelButton.Text = "&Cancel";  
            //    
            // okButton  
            //    
            this.okButton.Location = new System.Drawing.Point(128, 8);  
            this.okButton.Name = "okButton";  
            this.okButton.TabIndex = 0;  
            this.okButton.Text = "&Ok";  
            this.okButton.Click += new System.EventHandler(this.okButton_Click);  
            //    
            // ModalBaseForm  
            //    
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);  
            this.ClientSize = new System.Drawing.Size(292, 273);  
            this.Controls.AddRange(new System.Windows.Forms.Control[] {  
                                                                          this.bottomPanel});  
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;  
            this.KeyPreview = true;  
            this.MaximizeBox = false;  
            this.MinimizeBox = false;  
            this.Name = "ModalBaseForm";  
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;  
            this.Text = "ModalBaseForm";  
            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.ModalBaseForm_KeyDown);  
            this.bottomPanel.ResumeLayout(false);  
            this.ResumeLayout(false);  
  
        }  
        #endregion  
  
        #region Protected functions  
        protected virtual void okButton_Click(object sender, System.EventArgs e)  
        {  
            this.DialogResult = DialogResult.OK;  
        }  
        #endregion  
  
        #region Private functions  
        private void ModalBaseForm_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)  
        {  
            if( e.KeyData == Keys.Escape ){  
                this.Close();  
            }  
        }  
        #endregion  
    }  
}