Wie kann ich erfassen den Wert von einem Textfeld und verwenden Sie es als eine variable?

Lassen Sie mich Vorwort dies sagen, dass ich bin sehr neu in C# und ich bin die Umwandlung eines Programms von VB.net zu C#.

Arbeite ich in Visual Studio 2012 und-Führung SQL Server 2008R2

OK, Also ich habe ein Formular "Form1". auf diesem Formular ist ein Textfeld kann ein Benutzer ausfüllen, TextBox1. Nun möchte ich die Informationen in das Textfeld als variable zum abrufen von Informationen aus einer Datenbank, und füllen Sie ein Textfeld ("textbox2") auf ein anderes Formular (form2) das ist der code, den ich bin derzeit mit auf form 2

    private void form2_Load(object sender, EventArgs e)
    {

        string Name = Form1.TextBox1.Text;
        this.TBMainTableAdapter.FillBy(Name);

    }

Ich habe auch versucht, laden Sie es wie folgt:

this.TBMainTableAdapter.FillBy(Form1.TextBox1.Text);

diese beiden geben mir die "Objekt-Referenz ist für einen nicht-statischen Feld... Fehler

In VB.Net es war viel einfacher, ich codiert es so, und es funktionierte perfekt.

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.TBMainTableAdapter.FillBy(Me.ProjectDataset.TBName, TextBoxName.Text)
End Sub

Gibt es etwas, was ich bin fehlt in der code-behind? Ich habe versucht, ändern Sie den code auf der text-box

vom

public System.Windows.Forms.TextBox TextBox1;

zu

public static System.Windows.Forms.TextBox TextBox1;

Während diese gelöscht, bis der Fehler auf ziehen des variable, Sie warf ein paar mehr Fehler in der code-behind auf Formular 1, "kann nicht zugegriffen werden, mit einer Instanz, geben Sie es ein nametype" Fehler

Wäre es Wert, es zu ändern alle Fehler, die sich auf den code hinter. und noch wichtiger ist, dass der richtige Weg, dies zu tun?


OK also ich habe diese 2 unter

public partial class Form1 : Form
Form1  form1;
public Form2(Form1 frm)

    {    
        form1 = frm;
    }

    Form2 frm = new Form1(this);

Im immer die "- Methode muss einen Rückgabetyp-Fehler" im "Public Form2(Form1 frm)" line
und
"Fehler Namespace.Form1 nicht über einen Konstruktor verfügen, nimmt 1 Argumente" an die Form2 frm = new Form1(this); Zeile

auch wenn ich die get-Eigenschaft in Form1, bekomme ich eine Fehlermeldung zu deklarieren 2 Objekte mit dem gleichen Namen. Kann nicht finden, überall, in der Sie deklariert TextBox1 außer in der code-behind-wo das erklärte am Ende der code-behind-als

public System.Windows.Forms.TextBox TxtBox1

und wenn ich die getter unten, dass ich eine einzige Aufgabe, Anruf, usw. können verwendet werden, als eine Anweisung Fehler

  • Sie wollen nicht, um Ihren TextBox statisch. noch stärker, nicht ändern Sie Ihren code hinter, wenn Sie nicht wissen, was Sie tun. es ist automatisch generiert und änderungen könnten verloren sein im langen Lauf
  • Ihren code nicht zeigen, die Deklaration von Form1, aber ich gehe davon aus Form1-Klasse ist der name des Formulars (wie "public partial class Form1 : Form"). Wenn ja, dann ist Form1.TextBox1 funktioniert nicht. Sie können nicht verwenden den Namen der Klasse, zu versuchen, den Zugang eines Mitglieds einer Instanz der Klasse.
  • MuhammadHani, dass wird nicht funktionieren, weil TextBox1 auf eine andere form als die, die ich rufe es aus.
  • Mbeckish. genau richtig, das ist, wie seine erklärte. also dann, wie würden Sie rufen es aus einem anderen Formular?
  • Siehe Nikola Davidovic ' s Antwort weiter unten.
  • möglich, Duplikat der wie, um einen Wert zurückzugeben von Haupt-Formular, um eine abweichende form oder Klasse(C#)
  • Ich sehe, wie das Konzept ist das gleiche, wenn ein Wert von einer form zur anderen, aber ich kann nicht herausfinden, wie zu übersetzen, dass der Wert, der zurückgegeben wird, in die Funktion "zählen" zu dem, was ist, trat in mein Textfeld. Ive gelungen, eine Methode aus einer anderen form eine variable einfügen und return ein Ergebnis von einer Funktion, aber für das Leben von mir, ich kann nicht es zu Lesen, was in das Textfeld eingegebene
  • Haben Sie follow @NikolaDavidovic Vorschlag und stellen Sie sicher, dass Sie mit einem Verweis auf die ursprüngliche form, und nicht nur das instanziieren einer neuen Kopie des Formulars?
  • versucht. Hinzugefügt die info, die ich in meinem Formular und die Fehler, die ich bin immer oben...
  • Der code sagte Sie, Sie Hinzugefügt, um die Form1 Hinzugefügt werden soll Form2 statt. Sorgfältig befolgen, was ich dir gesagt habe zu tun ist und wo Sie den code einfügen!

InformationsquelleAutor Joe K | 2013-03-02
Schreibe einen Kommentar