Я работаю над проектом надстройки Excel, который потребует от меня процедурной генерации некоторых элементов управления на панели задач Windows. Во время экспериментов я столкнулся с проблемой, когда для этой кнопки по-прежнему задана ширина 0, и я не понимаю, почему.
Если я не использую привязку или закрепление, кнопка появляется, но с шириной и высотой по умолчанию. Я пытаюсь сделать так, чтобы он охватывал ширину панели макета, и я понял, что вы могли бы сделать это с помощью AnchorStyles Left и Right или с DockStyle Fill. Однако, как только я добавлю эти свойства, ширина будет установлена в 0 (как видно из отладчика). Я проверил ширину корневого элемента управления (этого) и родительского элемента управления FlowLayoutPanel, и они оба имеют ненулевой размер по умолчанию.
Что я делаю не так?
public MyUserControl()
{
FlowPanel = new FlowLayoutPanel
{
Name = "My Flow Panel",
TabIndex = 0,
FlowDirection = FlowDirection.TopDown,
};
Button button1 = new Button
{
Name = "button1",
Text = this.Width.ToString(),
FlatStyle = FlatStyle.Flat,
Padding = new Padding
{
Left = 10
},
Parent = FlowPanel,
Anchor = (AnchorStyles.Left | AnchorStyles.Right)
};
FlowPanel.Controls.Add(button1);
this.Controls.Add(FlowPanel);
}