0

Panle から駆動される AdvancePanle というクラスを取得し、CheckBox から駆動される AdvnaceCheckBox というクラス呼び出しを取得しました。

フォームに AdvancePanle を作成しましたが、AdvnaceCheckBox をいくつか追加したいと考えています。だから私はこの簡単な方法を作成しました:

 private void addCheckBox()
    {
        AdvancedCheckBox checkbox;
        for (int i = 0; i < 10; i++)
        {
            checkbox = new AdvancedCheckBox();
            checkbox.Location = new Point(0, i + 5);
            checkbox.Text = "bla" + i;
            selectablePanel1.Controls.Add(checkbox);
        }
    }

フォームの onLoad でこのメソッドを呼び出します。

 protected override void OnLoad(EventArgs e)
        {
            addCheckBox();
            selectablePanel1.AutoScroll = true;

            base.OnLoad(e);
        }

しかし、フォームを開いた後、Panle に CheckBox が 1 つしか表示されません。位置をいじってみましたが、常にチェックボックスが1つしか表示されません。

使い古した方法で CheckBox を追加していますか?

(私の英語でごめんなさい)

4

1 に答える 1

1

それらを互いに近づけすぎています。(0, 5+i)は次のように評価されます:

(0,5)
(0,6)
(0,7)
(0,8)
...

代わりにこれを試してください:

checkbox.Location = new Point(0, i*100 + 5);

またはこれ:

checkbox.Location = new Point(0, i*checkbox.Height + 5);
于 2012-10-28T20:45:59.937 に答える