2013-07-12 4 views
1

Я хочу изменить ширину формы Windows Forms во время выполнения. Я также выполняю метод SuspendLayout и resumelayout, но он не работает.Изменение ширины формы Windows Forms во время выполнения

System.Windows.Forms.Control form = this.currentForm; 
    form.SuspendLayout(); 
    form.Width = form.Width + 100; 
    form.ResumeLayout(); 

Как я могу заставить его работать?

+1

"но это не сработает". - пожалуйста, объясни. – Blorgbeard

+1

http://msdn.microsoft.com/en-us/library/aa984427(v=vs.71).aspx – prospector

+0

В каком контексте вы используете приведенный выше код? Пожалуйста, покажите больше. Что такое 'this' и что такое' this.currentForm'? – joe

ответ

0

Очевидно, замените «Form1» на ваше имя формы. Именно это легко:

Form1.ActiveForm.Width += 100; 
+1

Вы уверены, что это отличается от 'form.Width = form.Width + 100;' ? .. и как если он не активен? – matzone

2
form.Size = new Size(form.Size.Width + 100, form.Size.Height); 
4

Установить размер формы, как это

Form1.Size = new System.Drawing.Size(100, 100); 

или

Form1.Size = new System.Drawing.Size(100, Form1.Size.Height); 

После того, как размер был определен, вы можете изменить размер формы, как это

Form1.Width += 200; 

MSDN - Resizing Windows Forms

Смежные вопросы