2012-09-18 5 views
2

У меня есть usercontrol, который я добавляю как элемент управления основной формы динамически. Основная форма в основном пуста, за исключением того, что она имеет большую строку состояния внизу.Как предотвратить параметр заполнения пользовательского контроля слишком далеко

Проблема заключается в том, что когда я устанавливаю параметр Dockstyle.Fill на свой пользовательский контроль, размер загруженного пользовательского контроля выходит за панель состояния (он заполняет всю основную форму, как если бы в строке состояния не было).

Как предотвратить такое поведение? Это пример того, как я динамически загружать мою форму

 logicForm = new LogicForm(); 
     this.Controls.Add(logicForm); 
     logicForm.Dock = DockStyle.Fill; 
+0

Не могли бы вы рассказать код '.aspx' вашей страницы? – TheGeekZn

+0

?? Это winforms, а не asp.net. – l46kok

+0

Im извините. Никогда не видел ссылок на winforms; кроме, может быть, ссылки на Docksyle. – TheGeekZn

ответ

0

Я просто нашел решение

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

logicForm.BringToFront(); 

Найдено здесь: http://dotnetref.blogspot.kr/2008/08/using-dock-fill-on-control-when-you.html

-________________________-

0

Я думаю, вам нужно установить DockStyle в None и использовать свойство Anchor вместо.

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

При запуске вы должны найти, что пользовательский элемент управления изменит размер с помощью формы.

+0

Я просто попробовал это. По-прежнему такая же проблема. – l46kok

+0

Можете ли вы опубликовать код вверху. –