Не удается изменить размер ToolStripItem программно в ToolStrip с помощью ToolStripLayoutStyle.Table
Я хочу заполнить ToolStrip элементами программно. ToolStrip1.LayoutStyle должен быть ToolStripLayoutStyle.Table. Но я не могу изменить ширину элемента, даже если я это сделаю, ширина восстанавливается по умолчанию.
ToolStripLabel tslCheck = new ToolStripLabel("First Text"),
tslSumm = new ToolStripLabel("second Text:"),
tslError = new ToolStripLabel("third text:"),
tslAccount = new ToolStripLabel("fourth text"),
tslProvider = new ToolStripLabel("fifth text");
ToolStripTextBox tbCheck = new ToolStripTextBox(),
tbAccount = new ToolStripTextBox(),
tbSumm = new ToolStripTextBox(),
tbError = new ToolStripTextBox();
TableLayoutSettings tsSettings;
ToolStripComboBox cbProvider = new ToolStripComboBox();
protected void toolStrip1_Construct()
{
toolStrip1.LayoutStyle = ToolStripLayoutStyle.Table;
tsSettings = toolStrip1.LayoutSettings as TableLayoutSettings;
tsSettings.RowCount = 2;
tsSettings.ColumnCount = 6;
cbProvider.DropDownStyle = ComboBoxStyle.DropDownList;
///adding controls
toolStrip1.Items.AddRange(new ToolStripItem[]
{
tslCheck,
tbCheck,
tslAccount,
tbAccount,
tslProvider,
cbProvider,
//second row
tslSumm,
tbSumm,
tslError,
tbError
});
tbAccount.Width = 1000; //Width is still remains 100
cbProvider.Width = 500; //Width is still remains 121
}
Но если я делаю это в VisualDesigner, все работает нормально.
1 ответ
Решение
Вы должны включить AutoSize
свойство false:
ToolStripComboBox cbProvider = new ToolStripComboBox() { AutoSize = false };
То, что действительно работало для меня, было установить свойство Size вместо свойства Width:
cbProvider.Size = new Size(40, 20);
Высота игнорируется, но ширина устанавливается правильно