如何在C#.Net中移动表单?

Sev*_*ven 4 .net c# winforms

感谢您之前对我的问题的回答.你可以看到以下链接.

如何在C#.Net中最小化和最大化?

现在我面临另一个问题.当我将表单的bordertyle更改为none时,我无法像真实表单那样移动表单.它稳定而且无法移动到任何地方.

在Windows窗体中,正常的bordertyle可以移动到任何地方.但是我想在bordertyle的none属性中移动.我怎样才能做到这一点?如果可以,请告诉我.谢谢你的时间.:)

Aar*_*ide 10

    public class AppFormBase : Form
    {   
        protected override void OnLoad(EventArgs e)
        {
            if (this.FormBorderStyle == System.Windows.Forms.FormBorderStyle.None)
            {
                this.MouseDown += new MouseEventHandler(AppFormBase_MouseDown);
                this.MouseMove += new MouseEventHandler(AppFormBase_MouseMove);
                this.MouseUp += new MouseEventHandler(AppFormBase_MouseUp);
            }

            base.OnLoad(e);
        }

        void AppFormBase_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button != MouseButtons.Left)
            {
                return;
            }
            downPoint = new Point(e.X, e.Y);
        }

        void AppFormBase_MouseMove(object sender, MouseEventArgs e)
        {
            if (downPoint == Point.Empty)
            {
                return;
            }
            Point location = new Point(
                this.Left + e.X - downPoint.X,
                this.Top + e.Y - downPoint.Y);
            this.Location = location;
        }

        void AppFormBase_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button != MouseButtons.Left)
            {
                return;
            }
            downPoint = Point.Empty;
        }

        public Point downPoint = Point.Empty;
    }
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

18217 次

最近记录:

6 年,2 月 前