Ich mache eine C# Windows App und versuche, Objekte in Form (zum Beispiel TextBox und Label) programmgesteuert zu erstellen. Und ich kann das leicht machen, aber ich kann sie nicht als öffentliche Objekte definieren. Ich habe eine Funktion ‚makeTextBox(...)
‘ in einer Klasse namens ‚varstats
‘ genannt und dies ist die Funktion:wie auf ein Objekt zuzugreifen, das mit einer Funktion in c gemacht wurde #
public static void makeTextBox(Panel pnlMain, int offsetTop, int offsetRight, string strName = "")
{
TextBox txt = new TextBox();
txt.Name = strName;
txt.Parent = pnlMain;
txt.AutoSize = true;
txt.Width = (pnlMain.Width - 9 * defdis)/3; //defdis is a public int and means default distance
txt.Location = new Point(pnlMain.Width - txt.Width - defdis - offsetRight - 3, offsetTop + defdis);
}
Und das ist meine Hauptform Code in Form Last:
varstats.makeTextBox(pnlMain, 0, 0, "txtCustName");
Diese Funktion ist sehr richtig (: D) und ich kann die TextBox in meinem Panel sehen, aber wie kann ich auf die TextBox zugreifen? Zum Beispiel muss ich in einer anderen Form die Text-Eigenschaft von TextBox lesen und sie in meiner Datenbank speichern? Wie macht man das?
Beachten Sie, dass ich sie nicht im Header meiner Klasse definieren kann, weil ich zu viele Objekte mit for for oder while machen möchte und auch möchte ich sie entfernen und einige andere Objekte in einigen Fällen erstellen.
Es ist eine gute Idee, aber ich habe eine andere Funktion namens 'preparePanel' und diese Funktion machen zu viele Steuerelemente mit verschiedenen Typen (TextBox, Label, DataGridView, ...) und diese Funktion verwenden die Funktionen' makeLabel' und .... und ich sollte eine Reihe von verschiedenen Kontrollen in meiner 'preparePanel' -Funktion zurückgeben. Ist es möglich, ein solches Array zu haben? – KamyarM
Ich fand die Antwort ([Hier] (http://stackoverflow.com/questions/11395315)). Vielen Dank für Ihre Antwort. :) – KamyarM