using Rs.Controls; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Text; using System.Linq; using System.Reflection.Emit; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Windows.Forms.VisualStyles; namespace Rs.MotionPlat { public partial class BaseFormHeader : Form { private Color _HeaderBackgroundColor = Color.Black; public Color HeaderBackgroundColor { get { return _HeaderBackgroundColor; } set { _HeaderBackgroundColor = value; tableLayoutPanel1.BackColor = value; this.btnClose.BackColor = value; this.btnMax.BackColor = value; this.btnMin.BackColor = value; } } private bool _ShowMin = true; public bool ShowMin { get { return _ShowMin; } set { _ShowMin = value; this.btnMin.Visible = value; } } private bool _ShowMax = true; public bool ShowMax { get { return _ShowMax; } set { _ShowMax = value;this.btnMax.Visible = value; } } private bool _ShowClose = true; public bool ShowClose { get { return _ShowClose; } set { _ShowClose = value; this.btnClose.Visible = value; } } private string _HeadText; public string HeadText { get { return _HeadText; } set { _HeadText = value; this.lblHeaderText.Text = value; } } Point startPoint; Point endPoint; Point curPoint; bool pressed = false; public BaseFormHeader() { InitializeComponent(); } private void Head_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { if (e.Clicks == 2) { this.Close(); } pressed = true; curPoint = this.Location; startPoint = e.Location; } } private void Head_MouseMove(object sender, MouseEventArgs e) { if (pressed) { endPoint = e.Location; int offsetX = endPoint.X - startPoint.X; int offsetY = endPoint.Y - startPoint.Y; curPoint.Offset(offsetX, offsetY); this.Location = curPoint; } } private void Head_MouseUp(object sender, MouseEventArgs e) { if (pressed) { pressed = false; } } private void btnClose_Click(object sender, EventArgs e) { if (WindowsClose()) { this.Close(); } } private void btnMin_Click(object sender, EventArgs e) { WindowState = FormWindowState.Minimized; } private void btnMax_Click(object sender, EventArgs e) { if(this.WindowState== FormWindowState.Normal) { this.btnMax.ButtonType = EButtonMode.NOMAL; this.MaximizedBounds = Screen.PrimaryScreen.WorkingArea; this.StartPosition = FormStartPosition.Manual; this.WindowState = FormWindowState.Maximized; } else { this.btnMax.ButtonType = EButtonMode.MAX; this.WindowState = FormWindowState.Normal; } } protected void CloseWin(ControlCollection ctls) { foreach (Control ctl in ctls) { if (ctl is BaseForm) { ((BaseForm)ctl).Close(); } } } public virtual bool WindowsClose() { return true; } private void BaseFormHeader_Load(object sender, EventArgs e) { } } }