2017-06-02 10 views
-2

Bisher habe ich dynamisch erstellte Etiketten und Textbox, die von dieser Funktion in C# erstellt werdenC# - Wie ausrichten dynamisch erstellte Etikett und Textbox neben einander

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

Der dynamische Teil fein arbeitet außer ich das wollen title und newTextBox, um mit dem newLabel unten zu Seite zu stehen. Außerdem ist Name die einzige ID, der die Beschriftungen und Textfelder hinzugefügt werden können. Ich kann nicht herausfinden, wie man das in C# und NOT HTML macht. Jede Hilfe wird sehr geschätzt!

+0

Mögliche Duplikat [C# - Ausrichten dynamisch erstellte Textfelder Side-By-Side] (https: // Stackoverflow. com/questions/44315388/c-sharp-ausrichtend-dynamisch-erstellt-textboxen-Seite-an-Seite) – Amy

Antwort

-1

Für jemanden, der das gleiche Problem hat, habe ich es herausgefunden. Ich habe diese bis zum Ende so, dass der Titel und Textbox Aufenthalt auf der gleichen Linie mit dem Etikett unter

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

Sie können den Speicherort auf dem Formular mit der Eigenschaft Location auf den Steuerelementen festlegen. Dies nimmt Point als es Wert ist

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

Dies wird ihre Koordinaten auf dem Formular festgelegt. Sie müssen die Größe der Steuerelemente überprüfen, um sie vertikal auszurichten, aber die obigen werden sie auf die gleiche horizontale Linie setzen.

Ich stelle mir vor Name ist der Name des Formulars, in dem sich diese Funktion befindet? Sie werden höchstwahrscheinlich eine Referenz der Formularinstanz übergeben müssen, auf der die Steuerelemente angezeigt werden sollen, wenn Sie möchten, dass sie in einem anderen Formular angezeigt werden.

+0

Vielen Dank für Ihre Antwort. Ich habe Ihre Lösung versucht, außer System.Web.UI.WebControls.Label enthält keine Definition für den Standort. Außerdem ist Name die HtmlCellTable, auf die die Textbox und das Label angewendet werden. Hast du andere Lösungen? –

Verwandte Themen