0

ComboBox.Height簡単に設定できないことはわかっています。で変更可能Font。しかし、それが最終的な高さであることを知る必要があります。ウィンドウとコントロールが表示される前に更新されません。

どうすれば計算できますか?これを実行すると、ボタンは下ではなくコンボボックスの後ろにあります:

// my forms must be disigned by code only (no designer is used)
public class Form1: Form
{
    public Form1()
    {
        ComboBox box = new ComboBox();
        box.Font = new Font("Comic Sans MS", 100, FontStyle.Regular);
        Controls.Add(box);

        Button button = new Button();
        button.Text = "hello world";
        button.SetBounds(box.Left, box.Bottom, 256, 32);
        button.SetBounds(box.Left, box.Height, 256, 32); // doesn't work either
        Controls.Add(button);
    }
}
4

1 に答える 1

1

問題は、が描画ComboBox.Bottomされるまで、フォント サイズを補正するためにプロパティが更新されないことです。ComboBox

Form.Load解決策は、コンストラクターではなくイベントにコントロールを動的に追加することです。

private void MainForm_Load(object sender, EventArgs e)
{
    ComboBox box = new ComboBox();
    box.Font = new Font("Comic Sans MS", 100, FontStyle.Regular);
    Controls.Add(box);

    Button button = new Button();
    button.Text = "hello world";
    button.SetBounds(box.Left, box.Bottom, 256, 32); 
    Controls.Add(button);
}
于 2013-09-18T06:57:45.763 に答える