4

LabelやTextBoxなどのコントロールをTableLayoutPanelにドロップすると、(もちろん、他の多くの中で)次のプロパティがあります。

Cell.Column
Cell.Row
Column
Row

...ただし、これらのコントロールには通常、これらのプロパティはありません(TLPにドロップされないIOW、ラベル、およびテキストボックスにはこれらのプロパティがありません)。

これらのプロパティに(TLP内に埋め込みたいコントロールに)プログラムで値を割り当てるにはどうすればよいですか?

これは、ラベルの既存のコードです。

. . .
lblName = string.Format("label{0}", i);
var lbl = new Label()
{
    Name = lblName,
    Parent = tableLayoutPanelPlatypi,
    Column = ColNum, // Doesn't compile; Column property not recognized
    Row = i - 1,     // Doesn't compile; Row property not recognized
    Dock = DockStyle.Fill,
    Margin = 0,
    TextAlign = ContentAlignment.MiddleCenter,
    Text = GettysburgAddressObfuscation()
};
4

1 に答える 1

4

TableLayoutPanelのコントロールAddメソッドを介してそれらを追加できます。

tableLayoutPanelPlatypi.Controls.Add(lbl, ColNum, i - 1);

または、ご指摘のとおり、各プロパティは個別に設定できます。

tableLayoutPanelPlatypi.SetColumn(lbl, ColNum);
tableLayoutPanelPlatypi.SetRow(lbl, i - 1);

フォームのデザイナはこれらのプロパティを便利に追加していますが、デザイナファイル内でTableLayoutPanelに追加されたコントロールを見ると、上記の形式が使用されています。

于 2012-08-13T23:13:25.633 に答える