2013-06-06 4 views
1

У меня есть приложение, которое состоит из формы, которая после загрузки добавляет два элемента управления, которые происходят из UserControl. В UserControls используется одно и то же пространство координат, и я чередуюсь с тем, что видно с помощью BringToFront()/SendToBack(). В основном страницы WPF бедного человека. Каждый из UC имеет панель, которая занимает всю область UserControl, и панели содержат все кнопки, текстовые поля, данные DataGridView и т. Д.Как сделать UserControl расти с контейнером (Form)

В принципе, я пытаюсь сделать размер UserControls с Формой, содержащей их , используя свойства Dock или Anchor, но проблема заключается в том, что сам UserControl не обладает этими свойствами, поэтому при изменении размера окна панели, содержащие все содержимое, никогда не становятся больше. Я пробовал установить свойства Якоря и Дока для панелей внутри каждого UserControl безрезультатно. Я также попытался добавить FlowLayoutPanel в форму, а затем добавить UserControls к этому, а не непосредственно к объекту Form. Тот же результат. Я забрал себя, перейдя с помощью панелей UserControls, содержащих панели? Любой способ исправить это? PS, я новичок в C# /. NET. В настоящее время я занимаюсь большей частью своей работы с разработчиками Java.

Код например:

//Add the panels 
FsLookupPanel = new FSLookupPanel(this, this.LdapConn, this.dbConnect); 
MakeResPanel = new MakeReservationPanel(this, this.dbConnect); 

this.flowLayoutPanel1.Controls.Add(FsLookupPanel); 
this.flowLayoutPanel1.Controls.Add(MakeResPanel); 

//this.Controls.Add(FsLookupPanel); 
//this.Controls.Add(MakeResPanel); 

FsLookupPanel.Visible = true; 
MakeResPanel.Visible = false; 
+0

где вы ищете? вы должны найти их в родительской форме, когда вы нажмете на элемент управления пользователя – Sayse

+0

Btw, что вы видите с участием .Visible = true/false Я только что изменился. Я делал обе панели видимыми и просто использовал BringToFront() и SendToBack(), чтобы чередовать, что было видно, потому что изначально Visible = true/false почему-то не работало для меня. Теперь это. – user2461087

+0

Какую версию платформы .NET вы используете? Dock и Anchor определены в классе Control, из которого извлекается UserControl. Поэтому ваши пользовательские элементы управления должны обладать этими свойствами. Кроме того, вам может быть повезло сделать их видимыми/невидимыми вместо использования BringToFront/SendToBack. –

ответ

0

Вы судимое Somthing как это?

FsLookupPanel.Dock = MakeResPanel.Dock = DockStyle.Fill; 
this.flowLayoutPanel1.Controls.Add(FsLookupPanel); 
this.flowLayoutPanel1.Controls.Add(MakeResPanel); 

эту работу с каркасом 3.5, так что вы должны быть в порядке с 4.5

Вы не имеете его при настройке свойств с помощью конструктора, но свойство есть. Через код работает

+0

Aha! Я думаю, что это могло бы исправить это ... Я подумал, что странно, что VS не показывал эти свойства в дизайнере, если они были доступны. Всем спасибо!! Это первый раз, когда я когда-либо публиковал здесь, и меня впечатлило время отклика и все полезные предложения. – user2461087

+0

@ user2461087 да, это странно, что vs не знает об этих свойствах в дизайнере. Если это ответ на ваш вопрос, вы можете отметить это как ответ (litle check top left от этого ответа) –

+1

Хорошо, я проверил его. Еще раз спасибо. Сейчас я возился с привязными свойствами на всех суб-панелях и кнопках. Хехе. Весело. – user2461087

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