using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.ServiceModel.Security; using System.Text; using System.Windows.Forms; namespace FCOMMON { public partial class fBase : Form { public Boolean UseFormSetting { get; set; } public fBase() { InitializeComponent(); this.KeyPreview = true; UseFormSetting = true; this.FormClosed += fBase_FormClosed; this.KeyDown += fBase_KeyDown; } void fBase_KeyDown(object sender, KeyEventArgs e) { //if (e.KeyCode == Keys.Escape) this.Close(); } void fBase_FormClosed(object sender, FormClosedEventArgs e) { if(UseFormSetting) { var form = this as Form; FCOMMON.Util.SetFormStatus(ref form, this.Name, false); } } private void fBase_Load(object sender, EventArgs e) { if(UseFormSetting) { var form = this as Form; FCOMMON.Util.SetFormStatus(ref form, this.Name, true); } EnsureVisibleAndUsableSize(); } protected void EnsureVisibleAndUsableSize() { var visibleBounds = Screen.GetWorkingArea(this); var isOutOfView = (Left > visibleBounds.Right) || (Top > visibleBounds.Bottom) || (Right < visibleBounds.Left) || (Bottom < visibleBounds.Top); if (isOutOfView) { CenterToScreen(); } var minW = Math.Max(320, this.MinimumSize.Width); var minH = Math.Max(240, this.MinimumSize.Height); if (Width < minW || Height < minH) { this.Size = new Size(minW, minH); } } } }