2010-08-07 5 views
1

Я играю с проектом, C# .NET 4, и я как бы застрял. У меня есть панель, которая будет динамически заполняться флажками на основе количества элементов в папке, которая работает нормально.Как я могу перемещать все элементы управления на панели при изменении размера формы?

Но когда я изменяю размер формы, я хочу, чтобы флажки были перемещены в панели, как небольшая сетка флажков, которая занимает какое-то пространство.

До сих пор я не увенчался успехом в поиске эффективного способа сделать это. Я до сих пор не получил работу, но я не знаю, что это важно. Методы, которые я пытаюсь использовать, - это ресурсные убийцы.

ie.

int boxCount = panel1.Size.Width/123; 
int x = 3, y = 3, i = 0; 

foreach (Control chkbox in panel1.Controls) 
{ 

     if (i < boxCount) 
     { 
      chkbox.Location = new Point(x, y); 
      x += 123; 
     } 
     else 
     { 
      i = 0; 
      x = 3; 
      y += 123; 
      chkbox.Location = new Point(x, y); 
     } 

     i++; 
} 

Я ищу что-то, что не ставит мой процессор в удушающий захват и превратить свою форму в флип книги на 3 страницы, когда я изменить его размер. Для справки, у меня было что-то вроде селектора обоев для рабочего стола Windows в 7, за вычетом изменения размера фактических элементов управления.

Я не работал с WPF, но я, скорее всего, начну показывать свет, поэтому я искал решение для Windows Forms в садовом ассортименте.

ответ

4

Похоже, что вы ищете FlowLayoutPanel.

+0

+1. Вы были быстрее. – David

+0

Это прекрасно работает. Я помню, что думал, что для этого должен быть контроль, но он никогда не смотрел. Благодаря! – Ryan

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