问两个小知识:1 请问如何做个最小化的按钮,(模仿默认的最小化的按钮 )
             2 如何做到鼠标点住一个窗体不放可以随意拖动呢?(模仿一般窗体最上面那个蓝蓝的条)

解决方案 »

  1.   

    最小化:
       private void Button_Click(object sender, EventArgs e)
            {
                this.WindowState = FormWindowState.Minimized;
            }随意拖动:
     private Point mouseOffset; //记录鼠标指针的坐标
            private bool isMoving = false;
            private void panel_bar_MouseDown(object sender, MouseEventArgs e)
            {
                int xOffset;
                int yOffset;            if (e.Button == MouseButtons.Left)
                {
                    xOffset = -e.X;
                    yOffset = -e.Y;
                    mouseOffset = new Point(xOffset, yOffset);
                    isMoving = true;
                }
            }        private void panel_bar_MouseMove(object sender, MouseEventArgs e)
            {
                if (isMoving)
                {
                    Point mousePos = Control.MousePosition;
                    mousePos.Offset(mouseOffset.X, mouseOffset.Y);
                    this.Location = mousePos;
                }
            }        private void panel_bar_MouseUp(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    isMoving = false;
                }
            }
      

  2.   

    1,最小化:
    btn_Click()
    {
       frm.WindowState = FormWindowState.Minimized;
    }
    2.鼠标按下、移动、放开事件,设置窗体的起始位置
      

  3.   

    随意拖动还可以自己捕获Win32消息。这个方面WinForms的做法和MFC是一样的。