到目前为止,我已经动态创建了在C#
中使用此函数创建的标签和文本框private void AddControls(int controlNumber, string label)
{
var newLabel = new Label()
{
Text = "(" + label + ")"
};
var title = new Label()
{
Text = "External Name",
};
var newTextbox = new TextBox()
{
Width = 306,
MaxLength = 10
};
// textbox needs a unique id to maintain state information
newTextbox.ID = "TextBox_" + controlNumber;
// add the labels and textbox to form
Name.Controls.Add(title);
Name.Controls.Add(newTextbox);
Name.Controls.Add(newLabel);
Name.Controls.Add(new LiteralControl("<br/>"));
}
动态部分工作正常,但我希望标题和newTextBox与下面的newLabel并排。此外,Name是唯一可以添加标签和文本框的ID。似乎无法弄清楚如何在C#和非HTML中做到这一点。非常感谢任何帮助!
答案 0 :(得分:0)
您可以使用控件上的Location
属性在表单上设置位置。这需要Point
作为其值
newLabel.Location = new Point(10, 50);
newTextbox.Location = new Point(80, 50);
这将在表格上设置他们的坐标。您需要检查控件的大小以使它们垂直对齐,但上面的内容会将它们放在同一水平线上。
我想Name
是这个函数所在的表单的名称?如果您希望控件显示在另一个表单上,您很可能需要传递您希望控件显示的Form实例的引用。
答案 1 :(得分:-1)
对于任何有同样问题的人我都明白了。我将其添加到最后,以便标题和文本框与
下面的标签保持在同一行 df_External_Name.Controls.Add(new LiteralControl("<tr>"));
df_External_Name.Controls.Add(new LiteralControl("<td>"));
df_External_Name.Controls.Add(title);
df_External_Name.Controls.Add(new LiteralControl("</td>"));
df_External_Name.Controls.Add(new LiteralControl("<td>"));
df_External_Name.Controls.Add(newTextbox);
df_External_Name.Controls.Add(new LiteralControl("</td>"));
df_External_Name.Controls.Add(new LiteralControl("</tr>"));
df_External_Name.Controls.Add(new LiteralControl("<tr>"));
df_External_Name.Controls.Add(new LiteralControl("<td>"));
df_External_Name.Controls.Add(newLabel);
df_External_Name.Controls.Add(new LiteralControl("</td>"));
df_External_Name.Controls.Add(new LiteralControl("</tr>"));