【问题标题】:C# - How to Align Dynamically Created Label and Textbox Beside Each OtherC# - 如何将动态创建的标签和文本框并排对齐
【发布时间】:2017-06-02 16:25:53
【问题描述】:

到目前为止,我已经在 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 中执行此操作。非常感谢任何帮助!

【问题讨论】:

标签: c# asp.net webforms


【解决方案1】:

您可以使用控件上的Location 属性设置表单上的位置。这需要 Point 作为它的值

newLabel.Location = new Point(10, 50);
newTextbox.Location = new Point(80, 50);

这将在表单上设置它们的坐标。您需要检查控件的大小以使它们垂直排列,但上面会将它们放在同一水平线上。

我想Name 是这个函数所在的表单的名称?如果您希望控件出现在另一个表单上,您很可能需要传递希望控件出现在其上的 Form 实例的引用。

【讨论】:

  • 感谢您的回复。我尝试了您的解决方案,但 System.Web.UI.WebControls.Label 不包含位置定义。此外,Name 是应用文本框和标签的 HtmlCellTable。您还有其他解决方案吗?
【解决方案2】:

对于任何有同样问题的人,我都想通了。我将其添加到末尾,以便标题和文本框与下面的标签保持在同一行

        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>"));

【讨论】:

    猜你喜欢
    • 2019-04-20
    • 2011-11-10
    • 2010-11-13
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 2013-06-25
    相关资源
    最近更新 更多