3

2列4行のTableLayputPanelがあり、実行時にボタンを追加しようとしています。各ボタンを最初のセルに動的に追加したい:

private int nextIndex = 1;

private void bAddButton_Click(object sender, EventArgs e)
{
    Button newButton = new Button();
    newButton.Text = nextIndex.ToString();
    tableLayoutPanel1.Controls.Add(newButton, 0, 0);  // first cell
    nextIndex++;
}

私が理解しているように、これは既存のすべてのボタンをセルの上にシフトするはずです。これは最初の3回は機能するようですが、その後、新しいボタンを2番目のセルに数回挿入し、次に3番目のセルに挿入し、次に4番目のセルに挿入します...

特定のセルに対してControls.Add(ctrl、column、row)を呼び出すことができる回数に制限はありますか?

私は少し立ち往生しています、私は何が間違っているのですか?

4

2 に答える 2

2

私はちょうど同じ問題を抱えていました!私を助けたのは:

  1. フォームのデザインビューで、テーブルをクリックします

  2. AutoScrollとAutoSizeをTrueに設定します

  3. 行と列の編集に移動

  4. 最初の(そしておそらく唯一の)行をクリックし、そのサイズタイプをAutoSizeに設定します

すべての新しい行には、サイズタイプAutoSizeもあります。これのおかげで、私の行は適切に配置され、サイズ変更されます。

于 2011-12-11T12:41:30.857 に答える
0

1つのセルに多数のボタンを追加するには、セル内の唯一のコントロールとしてパネルを追加してから、そのパネルにボタンを追加する必要があります。

于 2009-11-09T13:09:24.183 に答える