4

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でそれを行うと、すべてが正常に機能します。

4

2 に答える 2

3

AutoSizeプロパティをfalseに変更する必要があります。

ToolStripComboBox cbProvider = new ToolStripComboBox() { AutoSize = false };
于 2012-05-31T13:36:40.113 に答える
0

私にとって実際に機能したのは、Widthプロパティの代わりにSizeプロパティを設定することでした。

cbProvider.Size = new Size(40, 20);

高さは無視されますが、幅は正しく設定されます

于 2019-03-19T20:18:35.607 に答える