C# 使形状延伸,直到达到最大宽度和高度

C# 使形状延伸,直到达到最大宽度和高度,c#,winforms,visual-studio-code,C#,Winforms,Visual Studio Code,高度总是太高,所有东西都偏离中心,因为形状变得比预期的大 代码: 在构造函数或设计器中设置窗体的MaximumSize属性: this.MaximumSize = new Size(800, 500); 您将高度和宽度增加了三个像素,这意味着它将跳过许多数字,并且您的If语句设置不正确 以您的widthIf语句为例,您说的是“当宽度大于或等于800时停止”,通过在If语句中使用大于或等于,您允许您的应用程序增长超过所需的大小,并且由于窗口增加了三倍,因此很容易跳过800 您应该更改代码,以便在

高度总是太高,所有东西都偏离中心,因为形状变得比预期的大

代码:


在构造函数或设计器中设置窗体的MaximumSize属性:

this.MaximumSize = new Size(800, 500);

您将高度和宽度增加了三个像素,这意味着它将跳过许多数字,并且您的If语句设置不正确

以您的widthIf语句为例,您说的是“当宽度大于或等于800时停止”,通过在If语句中使用大于或等于,您允许您的应用程序增长超过所需的大小,并且由于窗口增加了三倍,因此很容易跳过800

您应该更改代码,以便在偶数上递增

if(this.Width % 2 == 1)
    this.Width += 3;
else if(this.Width % 2 == 0)
    this.Width += 2;

        if (this.Width >= 800)
        {
            timer1.Stop();
            timer2.Start();
        }
上面的代码非常草率,但在您找到更好的解决方案之前,或者在它通过所需的大小后手动更改它,因为它应该根据您发布的代码只关闭几个数字

this.Width += 3;
        if (this.Width >= 800)
        {
            timer1.Stop();
            this.Width == 800;
            timer2.Start();
        }

当你说“它总是走得太远”时,你的意思是窗口会增长到你想要的大小,但它会超过你的屏幕边缘吗?不,它会超过我想要的大小,而不会超过屏幕。我想要的大小是数值还是视觉外观?计时器停止时,宽度和高度的值是多少?你的应用程序是DpiAware吗?我刚刚尝试在设计器中设置它,但仍然不起作用。@Rj1234 Define不起作用?我使用了你的代码,它不会超过那些尺寸。同样的事情发生了,它变得比预期的大。@Rj1234好吧,它有多大?尺寸大于800 x 500?是的,它是否改变了窗体边框样式设置为“无”的事实?
this.Width += 3;
        if (this.Width >= 800)
        {
            timer1.Stop();
            this.Width == 800;
            timer2.Start();
        }