C#關於winforms窗體大小、邊框、移動、動畫等屬性


1、窗體的邊框設置為無;

2、把窗體高度調整為25,發現跑的時候總在40左右,這時需要改改屬性,

把MinimumSize(0, 0)改成不為0的,最好改成和自己想要一樣的大小,

最大高寬也應該這么調;

3、把窗體的邊框去了就不能移動窗體了,我們需要給窗體加鼠標按下、移動、松開事件

 
  //===========================拖動窗口  開始============================
        #region 窗口可拖動
        Point mouseOff; //鼠標移動位置變量
        bool leftFlag; //標簽是否為左鍵
        private void Form1_MouseDown( object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons .Left)
            {
                mouseOff = new Point (-e.X, -e.Y); //得到變量的值
                leftFlag = true ;                  //點擊左鍵按下時標注為true;
            }
        }
        private void Form1_MouseMove( object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {
                Point mouseSet = Control .MousePosition;
                mouseSet.Offset(mouseOff.X, mouseOff.Y);  //設置移動后的位置
                Location = mouseSet;
            }
        }
        private void Form1_MouseUp( object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {
                leftFlag = false ; //釋放鼠標后標注為false;
            }
        }
        #endregion
        //===========================拖動窗口  結束============================

 4、窗體打開和關閉的動畫;

        //=========================窗體動畫  開始================================
        #region 窗體動畫
        /// <summary>
        /// 窗體動畫函數
        /// </summary>
        /// <param name="hwnd"> 指定產生動畫的窗口的句柄 </param>
        /// <param name="dwTime"> 指定動畫持續的時間 </param>
        /// <param name="dwFlags"> 指定動畫類型,可以是一個或多個標志的組合。 </param>
        /// <returns></returns>
        [ DllImport ( "user32" )]
        private static extern bool AnimateWindow( IntPtr hwnd, int dwTime, int dwFlags);
        //下面是可用的常量,根據不同的動畫效果聲明自己需要的
        private const int AW_HOR_POSITIVE = 0x0001; //自左向右顯示窗口,該標志可以在滾動動畫和滑動動畫中使用。使用AW_CENTER標志時忽略該標志
        private const int AW_HOR_NEGATIVE = 0x0002; //自右向左顯示窗口,該標志可以在滾動動畫和滑動動畫中使用。使用AW_CENTER標志時忽略該標志
        private const int AW_VER_POSITIVE = 0x0004; //自頂向下顯示窗口,該標志可以在滾動動畫和滑動動畫中使用。使用AW_CENTER標志時忽略該標志
        private const int AW_VER_NEGATIVE = 0x0008; //自下向上顯示窗口,該標志可以在滾動動畫和滑動動畫中使用。使用AW_CENTER標志時忽略該標志該標志
        private const int AW_CENTER = 0x0010; //若使用了AW_HIDE標志,則使窗口向內重疊;否則向外擴展
        private const int AW_HIDE = 0x10000; //隱藏窗口
        private const int AW_ACTIVE = 0x20000; //激活窗口,在使用了AW_HIDE標志后不要使用這個標志
        private const int AW_SLIDE = 0x40000; //使用滑動類型動畫效果,默認為滾動動畫類型,當使用AW_CENTER標志時,這個標志就被忽略
        private const int AW_BLEND = 0x80000; //使用淡入淡出效果
        //窗體代碼(將窗體的FormBorderStyle屬性設置為none):
        private void Form1_Load( object sender, EventArgs e)
        {
            int x = Screen .PrimaryScreen.WorkingArea.Left + 210;
            int y = Screen .PrimaryScreen.WorkingArea.Top + 96;
          
            this .Location = new Point (x, y); //設置窗體在屏幕右下角顯示
            AnimateWindow( this .Handle, 500, AW_SLIDE | AW_ACTIVE | AW_VER_POSITIVE);
        }
        //窗體關閉事件
        private void FirstForm_DoubleClick( object sender, EventArgs e)
        {
            Form1_FormClosing( null , null );
        }
        public void Form1_FormClosing( object sender, FormClosingEventArgs e)
        {
            AnimateWindow( this .Handle, 500, AW_BLEND | AW_HIDE);
            _instance = null ;
        }
        #endregion
        //=========================窗體動畫  結束================================


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM