2015-04-08 3 views
0

В моей форме окна я хочу добавить кнопку, которая позволит вырастить и/или сжать форму. Можно ли это сделать только одной кнопкой или мне нужно будет добавить две отдельные кнопки? Это код, который я использую, чтобы расти при нажатии кнопки. Как можно, если кнопка нажата снова, перейдите к меньшему размеру?Используйте одну кнопку для ShrinK & Grow

private void buttonGrowShrink(object sender, EventArgs e) 
{ 
    this.Size = new Size(320, 490); 
} 

Как я могу использовать ту же кнопку для уменьшения размера меньшего размера, если кнопка снова нажата?

+1

Нельзя, например, использовать Control.ModifierKeys, чтобы проверить, удерживает ли пользователь, скажем, клавишу Shift. Тем не менее, он делает для довольно ужасного пользовательского интерфейса, у пользователя нет возможности открыть это самостоятельно. Вам нужно будет написать руководство. Не делай этого. –

+0

Спасибо за понимание. Я просто использую 2 кнопки, но имею их в том же месте и скрываю/скрывать, основываясь на событии нажатия кнопки, чтобы в правильное время отображалась только правильная кнопка. – user2676140

+0

Пользователи знают, как изменить размер окна. Просто не помогай. –

ответ

1

Два решения ниже. В обоих случаях я также изменил текст кнопки, чтобы пользователь знал, что произойдет, если они ее нажмут, но это будет необязательно.

Один из способов будет использовать логическое значение для отслеживания текущего размера формы:

private bool formIsLarge = false; 

private void buttonGrowShrink(object sender, EventArgs e) 
{ 
    if (formIsLarge) 
    { 
     this.Size = new Size(160, 245); 
     button1.Text = "Grow Form"; 
    } 
    else 
    { 
     this.Size = new Size(320, 490); 
     button1.Text = "Shrink Form"; 
    } 

    formIsLarge = !formIsLarge; 
} 

Другим способом было бы просто сравнить текущий размер формы с «большой» и «маленький» размеры и изменить размер соответственно:

private void buttonGrowShrink(object sender, EventArgs e) 
{ 
    var largeSize = new Size(320, 490); 
    var smallSize = new Size(160, 245); 

    if (this.Size.Width >= largeSize.Width || this.Size.Height >= largeSize.Height) 
    { 
     this.Size = smallSize; 
     button1.Text = "Grow Form"; 
    } 
    else 
    { 
     this.Size = largeSize; 
     button1.Text = "Shrink Form"; 
    } 
} 
0

Вот простой способ переключения между двумя размерами. Давайте используем (400 300) и (600 200), например. Просто добавьте эти значения вместе, чтобы получить постоянный размер. Затем вычитайте текущий размер из этой константы каждый раз, когда нажимается кнопка. Нравится так:

private void buttonGrowShrink(object sender, EventArgs e) 
{ 
    this.Size = new Size(1000, 500) - this.Size; 
} 
Смежные вопросы