Расширьте форму до тех пор, пока она не достигнет максимальной ширины и высоты. - PullRequest
0 голосов
/ 27 мая 2020

Высота всегда заходит слишком далеко, и все не по центру, потому что Форма становится больше, чем предполагалось.

Код:

private void timer1_Tick(object sender, EventArgs e)
{
    this.Width += 3;
    if (this.Width >= 800)
    {
        timer1.Stop();
        timer2.Start();
    }
} 

private void timer2_Tick(object sender, EventArgs e)
{
    this.Height += 3;
    if (this.Height >= 500)
    {
        timer2.Stop();
    }
}

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Установите свойство MaximumSize формы либо в конструкторе, либо в дизайнере:

this.MaximumSize = new Size(800, 500);
0 голосов
/ 27 мая 2020

Вы увеличиваете высоту и ширину на три пикселя, это означает, что будет пропущено много чисел, и ваши операторы If настроены неправильно для этого.

Возьмите вашу ширину Заявление If например, вы говорите «Остановить, когда ширина больше или равна до 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();
        }
...