Durch übergeben eines Werts aus einer form in eine andere form
Ich habe zwei Formulare namens form1
und form2
:
form1
ist aus einemlabel
und einbutton
.form2
ist aus einemtextBox
und einbutton
Wenn ich auf die form1
- Taste, dies wird zeigen, bis form2
. Alle Eingänge in textBox
geschrieben werden sollten, zurück zu form1.label
sobald ich drücken Sie die Schaltfläche in form2
.
Ich habe den folgenden code, aber es funktioniert nicht.
//Code from Form 1
public partial class Form1 : Form
{
public void PassValue(string strValue)
{
label1.Text = strValue;
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 objForm2 = new Form2();
objForm2.Show();
}
}
//Code From Form 2
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form1 objForm1 = new Form1();
objForm1.PassValue(textBox1.Text);
this.Close();
}
}
Und ein screenshot:
Wie kann ich erkennen, dass?
übergeben Sie die Instanz von Form1 in den Konstruktor von Form2 auf und speichern es als ein Attribut in Form2
Ich habe genau aufgeführt, die Lösung.
Ich habe genau aufgeführt, die Lösung.
InformationsquelleAutor marai | 2011-10-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du nicht auf form1, aus denen Sie erstellt form2. In form2 button1_Click erstellen Sie eine neue Instanz von Form1, das ist nicht das gleiche wie der erste. Sie können Ihren pass form1-Instanz Konstruktor von form2 so:
InformationsquelleAutor mao
Wie erwähnt in anderen Beiträgen, die Sie nicht in der Lage sein, um die Referenz der ursprünglichen Form1, indem Sie eine neue Instanz von Form1. Sie können übergeben Form1 in Form2 Konstruktor oder setzen Form2 text als eine öffentliche Eigenschaft, aber ich in der Regel bevorzugen die Verwendung von Stellvertretern für diese zu pflegen lose Kopplung.
Die Delegierten sind viel mehr bevorzugt. Schöner code. Arbeiten wie ein Charme. Danke.
InformationsquelleAutor Veldmuis
Wenn Sie tun:
... Sie erstellen eine neue
Form1
und aufrufen derPassValue
Methode auf der falschenForm1
Objekt. Sie stattdessen tun könnten:InformationsquelleAutor Otiel
Ich habe gerade versucht diesen code und es funktioniert, sicher, es wird dir helfen.
in der ersten form (
Form1
) unten eingeben:in der zweiten form (
Form2
) verwenden Sie folgende codes:InformationsquelleAutor user2842183
Könnte man dies tun:
und in form1
InformationsquelleAutor Marco
Sollten Sie übergeben Referenz auf form1 zu form2 erstellen, anstatt neue Instanz in diesem code:
InformationsquelleAutor artplastika
Den Weg, dass ich normalerweise diese Anforderung Ansatz ist wie folgt:
Ich eine öffentliche Eigenschaft der Klasse Form2:
Um wieder etwas zu Form1 hinzu, müssen Sie eine öffentliche Eigenschaft der Form1-Klasse zu erhalten die Wert, und senden Sie dann einen Verweis auf das Formular Form2, so dass Form2 können den Wert:
dann
Seit Form2 hat jetzt eine Referenz auf Form1 erstellt hat, gibt es keine Notwendigkeit, rufen Sie new Form1() irgendwo in Form2. Alle Form2 zu tun hat, setzen Sie den Wert auf der Referenz -, und dann sich zu schließen.
InformationsquelleAutor RobD
Dies ist, was Sie tun werden:
public Form MainForm
- verwendet dieForm
Basis-Klasse, wo die Form2 ist abgeleitet vonForm
. Die Nutzung kann in Anspruch genommen werden, mitForm
KlasseVielen Dank für die Hilfe, aber ich habe diesen Fehler "name " objForm1' existiert nicht im aktuellen Kontext"
I ' m so sorry - ich habe soeben den code, bitte
Form2
Klasse. Sollte dies funktionierenInformationsquelleAutor Abdul Munim
Form 1 code...:-
Form-2-code....:-
direkt ausführen, es wird u Holen Sie sich das klare Bild....gleiche Weise kann u übergabe von Werten aus einem Formular an einen anderen...
posten Sie Ihre Kommentare, wenn Sie irgendwelche Fragen...
hoffe das hilft...
sonst können Sie sich diese video...
http://www.youtube.com/watch?v=PI3ad-TebP0
InformationsquelleAutor sanjeev