【WinForm-无边框窗体】实现Panel移动窗体,没有边框的窗体

没有边框的窗体怎么移动?其实方法有很多,下面介绍一种用控件来移动窗体,Panel或PictureBox都可。主要设置控件的MouseDowm和MouseLeave事件。

第一步:窗体设计

窗体最上面是一个panel1

窗体最下面是一个Panel3,只显示最上面一条线

 

第二步:panel移动窗体实现代码

MouseDown事件

MouseLeave事件

#region 移动窗体
        Point downPoint;
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            downPoint = new Point(e.X, e.Y);
        }
 
        private void panel1_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                this.Location = new Point(this.Location.X + e.X - downPoint.X,this.Location.Y + e.Y - downPoint.Y);
            }
        }
        #endregion

 

如何实现panel只显示最上面一条线?

Paint事件

//重绘panel3,只显示最上面一条直线
        private void panel3_Paint(object sender, PaintEventArgs e)
        {
            ControlPaint.DrawBorder(e.Graphics,this.panel3.ClientRectangle,
                  Color.Lavender,1, ButtonBorderStyle.Dashed,
                  Color.Gray,1,ButtonBorderStyle.Solid,
                  Color.Lavender,1,ButtonBorderStyle.Dashed,
                  Color.Lavender,1,ButtonBorderStyle.Dashed);
        }

  

原文地址:https://www.cnblogs.com/Sukie-s-home/p/5216980.html