2009-07-17 11 views
0

Ein kleines Problem mit C#, noch ziemlich neu in der Sprache, aber ich hoffe, Sie können helfen. Ich habe ein Programm, das dynamisch Registerformulare erstellt und dann versuche, der Registerkarte (Textfelder und Beschriftungen) Steuerelemente hinzuzufügen, aber egal, was ich versuche, es scheint einfach nicht funktionieren zu wollen. Hier ist der Code, den ich gerade verwende (nur um ein Textfeld in jedem Formular zu erhalten):C# dynamisch Text tabcontrol hinzufügen

int i = dogresults; 
while (i > 0) 
{ 
    i--; 
    DataRow dogrow = ds1.Tables["confirmdogs"].Rows[i]; 
    string dogname = dogrow.ItemArray.GetValue(3).ToString(); 
    TabPage newpage = new TabPage(dogname); 
    tcNewCustomer.TabPages.Add(dogname); 

    TextBox tb1 = new TextBox(); 
    tb1.Location = new Point(20, 10); 
    newpage.Controls.Add(tb1); 
    tb1.Name = "txtDogNo" + i; 
} 

Jede Hilfe würde sehr geschätzt werden!

+0

Bitte beachten Sie die Bearbeitung meiner Antwort - es ist ein einfacher kleiner Tippfehler :) –

Antwort

1

EDIT: Doh! Ich habs!

Sie fügen nicht die neue TabPage hinzu, die Sie erstellen. Diese Zeile:

tcNewCustomer.TabPages.Add(dogname); 

so sein sollte: (. Ein kleiner Test-App zeigt die Registerkarten ohne Textfelder mit der ersten Version erstellt werden, aber mit der zweiten Version adaequat)

tcNewCustomer.TabPages.Add(newpage); 


das auf einem Blick sieht okay (obwohl ich es nicht versucht habe - ein kurzes, aber vollständiges Demo-Programm würde helfen). Wenn Sie es sagen, "scheint einfach nicht zu arbeiten" - was genau passiert?

Haben Sie versucht, den Standort ein wenig nach unten zu verschieben? Ich weiß, dass einige Steuerelemente in Bezug darauf, wo ihr logisches "Top" ist, ungerade sind (d. H. Es ist nicht das erste sichtbare Pixel).

+0

Wie ich vermute, Sie angenommen, es ist einfach nicht sichtbar. Versucht, die x, y-Koordinaten in den Standortpunkt zu verschieben, aber immer noch nichts. –

+0

Okay, ich werde versuchen, es zu reproduzieren. –

+0

Oh Gott, was für ein dummer Fehler war das! Vielen Dank :) –

0

Was ist mit der Einstellung des Textes in der Textbox? Momentan stellst du nur den Namen ...

Obwohl ich immer noch erwarten würde, dass Sie einen Rahmen auf der Box + Hintergrundfarbe sehen, vorausgesetzt, dass sich von der Registerkarte Hintergrund unterscheidet.

+0

Nur gegeben, dass ein Versuch, aber es ist immer noch nicht sichtbar –