Элементы управления заблокированы мин. ширина или максимальный размер

У меня есть форма с tableLayoutPanel. Он имеет 1 столбец и 2 строки с 2 элементами управления. Метка и listView. В режиме дизайна я не могу установить высоту метки больше 17. И listView я могу вручную увеличить, но не уменьшить. Размеры элементов управления остаются больше самой формы. Таким образом, либо элементы управления обрезаются, либо я получаю полосы прокрутки форм. Итак, почему элементы управления автоматически увеличивают размер формы? И когда я запускаю приложение, они также не уменьшаются до minSize.

// 
// labelTitle
// 
resources.ApplyResources(this.labelTitle, "labelTitle");
this.labelTitle.ForeColor = System.Drawing.Color.DeepSkyBlue;
this.labelTitle.Name = "labelTitle";
// 
// tableLayoutPanel
// 
resources.ApplyResources(this.tableLayoutPanel, "tableLayoutPanel");
this.tableLayoutPanel.Controls.Add(this.labelTitle, 0, 0);
this.tableLayoutPanel.Controls.Add(this.aListView, 0, 1);
this.tableLayoutPanel.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.FixedSize;
this.tableLayoutPanel.Name = "tableLayoutPanel";
// 
// aListView
// 
resources.ApplyResources(this.aListView, "aListView");
this.aListView.AllowDrop = true;
this.aListView.BackColor = System.Drawing.SystemColors.Desktop;
this.aListView.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.aListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
this.aListView.LargeImageList = this.coverImageList;
this.aListView.MultiSelect = false;
this.aListView.Name = "aListView";
this.aListView.ShowGroups = false;
this.aListView.ShowItemToolTips = true;
this.aListView.TileSize = new System.Drawing.Size(200, 200);
this.aListView.UseCompatibleStateImageBehavior = false;
this.aListView.View = System.Windows.Forms.View.Tile;
// 
// form
// 
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Desktop;
this.Controls.Add(this.tableLayoutPanel);
this.Name = "Form";
this.albumsContextMenu.ResumeLayout(false);
this.tableLayoutPanel.ResumeLayout(false);
this.ResumeLayout(false);

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


person user3305711    schedule 28.05.2014    source источник
comment
Установить для формы значение AutoSize кажется плохой идеей;)   -  person user3305711    schedule 30.05.2014


Ответы (1)


Label по умолчанию имеет AutoSize = true, который изменяет размер элемента управления в зависимости от содержимого и игнорирует ваши ручные настройки.

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

label1.AutoSize = false;
label1.Height = 50;

(Обратите внимание, что вы можете сначала установить высоту, но вы не увидите эффекта, пока не отключите AutoSize.)


Что касается второго вопроса, вам нужно уточнить, что вы подразумеваете под "listView только увеличивается в размере".

person Grant Winney    schedule 28.05.2014
comment
Но почему вертикальный размер моей ширины ListView заблокирован прибл. 600? Он имеет MinSize.Width 400. Теперь я установил MinSize формы достаточно большим, поэтому ListView не может быть больше, чем форма. - person user3305711; 15.06.2014