Winform 最小化 最大化 關閉 點擊工作列隱藏顯示 點擊滑鼠左鍵移動表單

來源:互聯網
上載者:User

標籤:too   close   page   nlp   msi   else   pps   new   ase   

一 最大化

二 最小化

三 關閉

四 點擊工作列隱藏顯示

五 點擊滑鼠左鍵移動表單

  #region UI設定  最大化、最小化、關閉、滑鼠移動視窗、點擊工作列切換視窗            this.pnlMin.MouseHover += new EventHandler(pnlMin_MouseMove);//最小化按鈕的滑鼠經過樣式改變事件            this.pnlMin.MouseLeave += new EventHandler(pnlMin_MouseLeave);//最小化按鈕的滑鼠離開樣式改變事件            this.pnlMin.Click += new EventHandler(pnlMin_Click);//最小化按鈕單擊事件            this.pnlMax.MouseHover += new EventHandler(pnlMax_MouseMove);//最小化按鈕的滑鼠經過樣式改變事件            this.pnlMax.MouseLeave += new EventHandler(pnlMax_MouseLeave);//最小化按鈕的滑鼠離開樣式改變事件            this.pnlMax.Click += new EventHandler(pnlMax_Click);//最小化按鈕單擊事件            this.pnlClose.MouseHover += new EventHandler(pnlClose_MouseMove);//滑鼠經過關閉按鈕時的樣式改變            this.pnlClose.MouseLeave += new EventHandler(pnlClose_MouseLeave);//滑鼠離開關閉按鈕事件            this.pnlClose.Click += new EventHandler(pnlClose_Click);//關閉按鈕的單擊事件            this.pnlHead1.MouseDown += new MouseEventHandler(sysSet_MouseDown);  //滑鼠移動表單位置            this.pnlHead1.MouseMove += new MouseEventHandler(sysSet_MouseMove);//滑鼠移動表單位置            this.pnlHead1.MouseUp += new MouseEventHandler(sysSet_MouseUp);//滑鼠移動表單位置            #endregion

  

 

  #region UI設定  最大化、最小化、關閉、滑鼠移動視窗、點擊工作列切換視窗        #region 單擊工作列,最小化        protected override CreateParams CreateParams //點擊工作列實現最小化與還原          {            get            {                const int WS_MINIMIZEBOX = 0x00020000;                CreateParams cp = base.CreateParams;                cp.Style = cp.Style | WS_MINIMIZEBOX;   // 允許最小化操作                    return cp;            }        }        #endregion        #region 最小化按鈕        //最小化按鈕的滑鼠經過改變樣式事件        private void pnlMin_MouseMove(object sender, EventArgs e)        {            tip.SetToolTip(this.pnlMin, "最小化");            this.pnlMin.BackColor = Color.FromArgb(30, 255, 255, 255);        }        //最小化按鈕的滑鼠離開改變樣式事件        private void pnlMin_MouseLeave(object sender, EventArgs e)        {            this.pnlMin.BackColor = Color.Transparent;        }        //最小化按鈕的單擊事件        private void pnlMin_Click(object sender, EventArgs e)        {            if (WindowState != FormWindowState.Minimized)            {                WindowState = FormWindowState.Minimized;            }        }        #endregion        #region 最大化        private void pnlMax_MouseMove(object sender, EventArgs e)        {            tip.SetToolTip(this.pnlMax, "最大化");            if (WindowState == FormWindowState.Maximized)            {                tip.SetToolTip(this.pnlMax, "恢複");            }            this.pnlMax.BackColor = Color.FromArgb(30, 0, 0, 0);        }        //最小化按鈕的滑鼠離開改變樣式事件        private void pnlMax_MouseLeave(object sender, EventArgs e)        {            this.pnlMax.BackColor = Color.Transparent;        }        //最小化按鈕的單擊事件        private void pnlMax_Click(object sender, EventArgs e)        {            int h = Screen.PrimaryScreen.WorkingArea.Height;            int w = Screen.PrimaryScreen.WorkingArea.Width;            if (WindowState == FormWindowState.Normal)            {                //this.MaximumSize = new Size(w, h);//設定表單最大化為滿屏                this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);                this.pnlMax.BackgroundImage = global::Cnwin.Apps.Properties.Resources.max;                //this.tbCnt.Dock = DockStyle.Right;                //this.pnlCnt.Height = h - 10;                //this.pnlCnt.Width = w - 2;                //this.sptCnt.Width = 260;                this.pnlMax.Invalidate();                WindowState = FormWindowState.Maximized;                //PnlRslt.Left = (w / 2);                //sptCnt.SplitterDistance = 80;                //dgvRslt.Width = w - 100;            }            else            {                this.FormBorderStyle = FormBorderStyle.None;                this.pnlMax.BackgroundImage = global::Cnwin.Apps.Properties.Resources.max16;                //this.pnlCnt.Height = 629;                //this.pnlCnt.Width = 964;                this.MaximumSize = new Size(966, 630);                this.pnlMax.Invalidate();                WindowState = FormWindowState.Normal;                this.Height = 656;                //PnlRslt.Left = 420;                //sptCnt.SplitterDistance = 80;                //dgvRslt.Width = 840;                //dgvRslt.Height = 452;                //pnlPage.Top = 508;            }            //int width = 0; int clmSum = this.dgvRslt.Columns.Count;            ////對於DataGridView的每一個列都調整            //for (int i = 0; i < clmSum; i++)            //{            //    //將每一列都調整為自動適應模式            //    this.dgvRslt.AutoResizeColumn(i, DataGridViewAutoSizeColumnMode.AllCells);            //    //記錄整個DataGridView的寬度            //    width += this.dgvRslt.Columns[i].Width;            //}            ////判斷調整後的寬度與原來設定的寬度的關係,如果是調整後的寬度大於原來設定的寬度,            ////則將DataGridView的列自動調整模式設定為顯示的列即可,            ////如果是小於原來設定的寬度,將模式改為填充。            //if (width > this.dgvRslt.Size.Width)            //{            //    this.dgvRslt.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;            //}            //else            //{            //    //this.dgvRslt.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;            //}            ////this.MaximizedBounds = Screen.PrimaryScreen.WorkingArea;        }        #endregion        #region 關閉按鈕        //滑鼠經過關閉按鈕時觸發樣式改變        private void pnlClose_MouseMove(object sender, EventArgs e)        {            tip.SetToolTip(this.pnlClose, "關閉");            this.pnlClose.BackColor = Color.Red;        }        //滑鼠離開關閉按鈕觸發樣式改變        private void pnlClose_MouseLeave(object sender, EventArgs e)        {            this.pnlClose.BackColor = Color.Transparent;        }        protected void pnlClose_Click(object sender, EventArgs e)        {            FrmMonitor lg = new FrmMonitor();            lg.Dispose();            Application.Exit();        }        #endregion        #region 滑鼠移動表單移動        //表單拖動        bool isMouseDown = false;        Point cwpt = new Point(); //當前表單位置        Point cmpt = new Point(); //當前滑鼠的按下位置        private void sysSet_MouseDown(object sender, MouseEventArgs e)        {            if (e.Button == MouseButtons.Left)            {                isMouseDown = true;                cwpt = this.Location;                cmpt = System.Windows.Forms.Control.MousePosition;            }        }        private void sysSet_MouseUp(object sender, MouseEventArgs e)        {            isMouseDown = false;        }        private void sysSet_MouseMove(object sender, MouseEventArgs e)        {            int rangeX = 0, rangeY = 0; //計算當前滑鼠游標的位移,讓表單進行相同大小的位移            if (isMouseDown)            {                Point pt = System.Windows.Forms.Control.MousePosition;                rangeX = cmpt.X - pt.X;                rangeY = cmpt.Y - pt.Y;                this.Location = new Point(cwpt.X - rangeX, cwpt.Y - rangeY);            }        }        #endregion        #endregion

 

Winform 最小化 最大化 關閉 點擊工作列隱藏顯示 點擊滑鼠左鍵移動表單

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.