繁体   English   中英

如何以编程方式设置动态创建的控件的列和行属性以嵌入TableLayoutPanel?

[英]How can I programmatically set the Column and Row properties of controls that are dynamically created to embed within a TableLayoutPanel?

当我在TableLayoutPanel上删除一个控件(如Label或TextBox)时,它(当然还有许多其他属性)具有以下属性:

Cell.Column
Cell.Row
Column
Row

...但是这些控件通常不具有这些属性(IOW,未在TLP上删除的标签和文本框没有它们)。

如何以编程方式为这些属性赋值(对于我想要嵌入到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()
};

您可以通过TableLayoutPanel的控件添加方法添加它们:

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

或者正如您所指出的,每个属性都可以单独设置:

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

Form的Designer可以方便地为您添加这些属性,但是如果您在已添加到TableLayoutPanel的控件中查看设计器文件,它将使用上面的格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM