2015-08-11 4 views
1

Я хочу создать пользовательский интерфейс, как это, в приложении Windows Form C#. Сначала моя форма должна выглядеть так, когда chechBox не проверяется.Развернуть/Свернуть Win Form в C#

enter image description here

И если галочка моих изменений формы нравится этот

enter image description here

Как я могу это сделать?

+0

чем проблема. Когда некоторые пытались узнать что-то новое, эксперты не помогают, но голосуют за вопросы новичков. Перед отправкой вопроса я искал google. – Hanni

+2

Вы можете создать форму с помощью динамического макета (по крайней мере частично, например, некоторый контент можно поместить в обычную 'Panel', но затем они являются частью динамического макета) с помощью 'TableLayoutPanel' и' FlowLayoutPanel'. Затем, если вы установите свойства «Autosize' /' AutosizeMode »элементов управления (включая форму), они будут сжиматься/расширяться при простом изменении видимости. Например. при установке флажка вы делаете видимым панель 'PanelAdvancedOptions', которая находится внутри' TableLayoutPanel', которая растет по размеру и вызывает форму (которая также имеет 'Autosize'), чтобы расти также. – Sinatr

ответ

0

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

EDIT: Самый простой способ достижения результатов приведен ниже.

private readonly int _collapsedHeight; 
public Form1() 
{ 
    //Set Anchor of Connect button to Right and Bottom and leave default for others 
    //Optionally you need to hide controls except Connect button on collapse and vice versa. 
    //Set Form Border Style to FixedSingle and MaximizeBox to false   
    InitializeComponent(); 
    _collapsedHeight = Height; 
} 

private void chkAdvancedOption_CheckedChanged(object sender, EventArgs e) 
{ 
    //Set Y value to collapse eg. 140, adjust it as required... 
    Height = chkAdvancedOption.Checked ? _collapsedHeight + 140 : _collapsedHeight; 
} 
+0

Любая причина проголосовать? –

+0

2 downvotes на самом деле - это не отвечает на вопрос. Изменение высоты не отображает скрытые элементы управления. Выталкивание их за пределы обычных границ является болезненным, ненужным и не достигнет такого же эффекта - кнопки появятся под кнопкой «Подключиться». WIndows Forms использует макет [Панели] (https://msdn.microsoft.com/en-us/library/system.windows.forms.panel (v = vs.110) .aspx # inheritanceContinued) и стыковка для обработки изменяющегося содержимого –

+0

@PanagiotisKanavos Я могу это сделать и добиться того же результата. тогда? –

-1
void Page_Load(Object sender, EventArgs e) 
    { 
    // Manually register the event-handling method for the 
    // CheckedChanged event of the CheckBox control. 
    checkbox1.CheckedChanged += new EventHandler(this.Check_Clicked); 
    } 

void Check_Clicked(Object sender, EventArgs e) 
    { 
    **//This is only sample code** 
    // do your code 

    if (panel2.Visible) 
    { 
    panel2.Visible = false; 
    cmdAdvanced.Visible = true; 
    } 
    } 
Смежные вопросы