| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: string von class nach form übermitteln im Forum Code Kitchen, in der Kategorie Software Home; Anzeige hallo, ich hoffe ich blamiere mich jetzt nicht komplett... ich programmiere mit hilfe von visual studio2010 in csharp ein ...
![]() |
| | #1 (permalink) |
| Registriert seit: 21.07.11 ![]() Likes: 0 | Anzeige hallo, ich hoffe ich blamiere mich jetzt nicht komplett... ich programmiere mit hilfe von visual studio2010 in csharp ein programm. Dafür habe ich einmal die Benutzeroberfläche (Form1.cs[Entwurf]) erstellt. Die Funktionsweisen habe ich in (Form1.cs) geschrieben und was dann letzendlich ausgeführt wird, wird in "Lib_Wolfrom.cs" erledigt. Meine frage ist, wie bekomme ich jetzt einen string den ich in "Lib_Wolfrom.cs" erstellt habe wieder zurück in die Form, damit ich den text dort in einer textBox anzeigen kann? ich habe jetzt 2 tage lang gesucht und sämtliches gelesen, aber mir hat nie was weiter geholfen... ich hoffe ich habe mich klar ausgedrückt, so das dalles verständlich ist. grüße mathias |
| | |
| | #2 (permalink) |
| Member of Honour ![]() | Ein bisschen Code wäre jetzt nicht schlecht Ich empfehle dir mal: C# - Galileo OpenBook und speziell zu Windows Forms: Beginning C# - Chapter 13: Using Windows Form Controls - CodeProject Visual C# .NET - Your First Windows Form |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 21.07.11 ![]() Likes: 0 | Form.cs: Code: private void button16_Click(object sender, EventArgs e)
{
//"string name" 2 Stellen hochgerutscht
Lib_Wolfrom vorschlag = new Lib_Wolfrom(double.Parse(h1z.Text),
double.Parse(h1kkd.Text),
double.Parse(h1fkd.Text),
...
double.Parse(sd.Text),
name.Text,
double.Parse(nm.Text),
double.Parse(npa.Text),
double.Parse(za.Text),
double.Parse(k.Text)
);
} Lib_Wolfrom.cs: Code:
...
public void vorschlag(double _h1z,
double _h1kkd,
double _h1fkd,
double _h1b,
double _h1sf,
double _h1d,
double _h2z,
double _h2kkd,
...
double _za,
double _k
)
{
//Array zum abspeichern der kombinationen
string[] varianten = new string[moeglichkeiten_int];
for (int n = 1; n < m; n++)
{
varianten[n] = " " + " h1= " + arr2D[n, 0] + " h2: " + arr2D[n, 1] + " s: " + arr2D[n, 2] + " p: " + arr2D[n, 3] + " \n ";
}
//Stringbuilder fügt alle möglichen Kombinationen in eine Zeichenkette für die Ausgabe
StringBuilder Ausgabetext = new StringBuilder();
for (int n = 1; n < m; n++)
{
Ausgabetext.Append(varianten[n]);
}
string Ausgabetext_varianten_fertig = Ausgabetext.ToString();
//Anzeige der alternativen Kombinationen in einem Fenster
System.Windows.Forms.MessageBox.Show("Für die gewählten Parameter erfüllen folgende Varianten die Bedingungen: \n \n " + Ausgabetext_varianten_fertig + " \n \n Übernehmen Sie eine Alternative Variante"); deswegen hätte ich gern die ausgabe der ergebenisse ( in "Ausgabetext_varianten_fertig" abgelegt") in der textbox in der form, da man mit der scrollen kann Geändert von ma-thi-as (21.07.11 um 12:03 Uhr) |
| | |
| | #4 (permalink) |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 51 | Was macht denn deine Funktion in LibWolfrom? Erstellt diese nur den String oder macht die ganz andere Sachen und der String ist sozusagen eine Statusmeldung zwischendurch? Beim ersten Fall solltest du nämlich durchaus mit einem Return arbeiten können, der zweite Fall ist dann doch schon umständlicher. Ein wenig Beispielcode könnte hier aber wirklich hilfreich sein, dir die passende Antwort zu geben |
| | |
| | #5 (permalink) |
| Themenstarter Registriert seit: 21.07.11 ![]() Likes: 0 | meine funktion in lib_wolfrom macht die gesamte rechnung, das ist aber zu viel code um den hier rein zu stellen und am ende kommt der string Ausgabetext_varianten_fertig in dem alles ordentlich geschrieben und gelistet ist. und genau diesen string will ich ausgeben können. habe es auch schon mit return versucht, nur irgendwie hab ich den nie mein ziel erreicht... |
| | |
| | #6 (permalink) |
| Member of Honour ![]() | Statt Code: public void vorschlag() Code: public string vorschlag() Ungefähr so: Code: ...
public string vorschlag(double _h1z,
double _h1kkd,
double _h1fkd,
double _h1b,
double _h1sf,
double _h1d,
double _h2z,
double _h2kkd,
...
double _za,
double _k
)
{
//Array zum abspeichern der kombinationen
string[] varianten = new string[moeglichkeiten_int];
for (int n = 1; n < m; n++)
{
varianten[n] = " " + " h1= " + arr2D[n, 0] + " h2: " + arr2D[n, 1] + " s: " + arr2D[n, 2] + " p: " + arr2D[n, 3] + " \n ";
}
//Stringbuilder fügt alle möglichen Kombinationen in eine Zeichenkette für die Ausgabe
StringBuilder Ausgabetext = new StringBuilder();
for (int n = 1; n < m; n++)
{
Ausgabetext.Append(varianten[n]);
}
return Ausgabetext.ToString();
} |
| | |
| | #7 (permalink) |
| Themenstarter Registriert seit: 21.07.11 ![]() Likes: 0 | der erste/zweite code ist wieder für form.cs und der dritte für lib_wolfrom.cs? und wie rufe ich dann den text in der form.cs auf? bzw greife drauf zu? |
| | |
| | #9 (permalink) |
| Member of Honour ![]() | Ein bisschen Eigeninitiative wäre vielleicht nicht schlecht... ![]() Form.cs: Code: private void button16_Click(object sender, EventArgs e)
{
//"string name" 2 Stellen hochgerutscht
Lib_Wolfrom vorschlag = new Lib_Wolfrom(double.Parse(h1z.Text),
double.Parse(h1kkd.Text),
double.Parse(h1fkd.Text),
...
double.Parse(sd.Text),
name.Text,
double.Parse(nm.Text),
double.Parse(npa.Text),
double.Parse(za.Text),
double.Parse(k.Text)
);
textBox1.text = vorschlag.vorschlag();
} Code:
...
public string vorschlag(double _h1z,
double _h1kkd,
double _h1fkd,
double _h1b,
double _h1sf,
double _h1d,
double _h2z,
double _h2kkd,
...
double _za,
double _k
)
{
//Array zum abspeichern der kombinationen
string[] varianten = new string[moeglichkeiten_int];
for (int n = 1; n < m; n++)
{
varianten[n] = " " + " h1= " + arr2D[n, 0] + " h2: " + arr2D[n, 1] + " s: " + arr2D[n, 2] + " p: " + arr2D[n, 3] + " \n ";
}
//Stringbuilder fügt alle möglichen Kombinationen in eine Zeichenkette für die Ausgabe
StringBuilder Ausgabetext = new StringBuilder();
for (int n = 1; n < m; n++)
{
Ausgabetext.Append(varianten[n]);
}
return Ausgabetext.ToString();
} |
| | |
| | #10 (permalink) |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 51 | Alle 3 Code-Blöcke sind für Lib_Wolfrom. In der Form.cs rufst du ja die Funktion bereits auf, etwa so: Code: Button1_Click(...)
{
lib.funktionsname(parameter);
} lib.funktionsname(parameter); folgendes schreiben: textbox1.Text = lib.funktionsname(parameter); Wichtig ist, dass die Funktion dann auch einen String zurück gibt, das wurde aber weiter oben in nem anderen Thread bereits beschrieben. Ach und Beispielcode heißt nicht unbedingt, dass du den kompletten Code posten sollst, sondern wichtige Stellen. Oder du machst einen Beispielcode, der dein Problem veranschaulicht. |
| | |
| | #11 (permalink) |
| Themenstarter Registriert seit: 21.07.11 ![]() Likes: 0 | ich würde es am liebesten allein schaffen, aber das klappt leider nicht. ich geb mein bestes um mit zu arbeiten... ich erhalte jetzt 2 fehler meldungen: ungültiges token "(" in klasse, struktur oder schnittstellenmemberdeklaration ungültiges token "=" in klasse, struktur oder schnittstellenmemberdeklaration beide beziehen sich auf Form.cs Code: textBox1.text = vorschlag.vorschlag(); |
| | |
| | #12 (permalink) |
| Member of Honour ![]() | Deine Lib.cs: Code: public class foo {
public string bar(string arg1, string arg2) {
return arg1 + arg2;
}
} Code: private Button1_Click(..) {
foo x = new foo();
textBox1.text = x.bar("A", "B");
} Den Rückgabewert schreiben wir in die "textBox1". Diese sollte natürlich schon existieren. |
| | |
| | #13 (permalink) |
| Themenstarter Registriert seit: 21.07.11 ![]() Likes: 0 | schon mal zwischendurch danke für eure hilfe! aber noch klappt es nicht ganz... mein betroffener teil der form.cs sieht jetzt so aus: Code: private void button16_Click(object sender, EventArgs e)
{
//"string name" 2 Stellen hochgerutscht
Lib_Wolfrom vorschlag = new Lib_Wolfrom(double.Parse(h1z.Text),
double.Parse(h1kkd.Text),
double.Parse(h1fkd.Text),
double.Parse(h1b.Text),
double.Parse(h1sf.Text),
double.Parse(h1d.Text),
double.Parse(h2z.Text),
double.Parse(h2kkd.Text),
double.Parse(h2fkd.Text),
double.Parse(h2b.Text),
double.Parse(h2sf.Text),
double.Parse(h2d.Text),
double.Parse(pn.Text),
double.Parse(pz.Text),
double.Parse(pkkd.Text),
double.Parse(pfkd.Text),
double.Parse(pb.Text),
double.Parse(psf.Text),
double.Parse(pd.Text),
double.Parse(sz.Text),
double.Parse(skkd.Text),
double.Parse(sfkd.Text),
double.Parse(sb.Text),
double.Parse(ssf.Text),
double.Parse(sd.Text),
name.Text,
double.Parse(nm.Text),
double.Parse(npa.Text),
double.Parse(za.Text),
double.Parse(k.Text)
);
Lib_Wolfrom x = new Lib_Wolfrom();
textBox1.Text = x.vorschlag(); und der betroffene teil der Lib: Code: public string vorschlag(double _h1z,
double _h1kkd,
double _h1fkd,
double _h1b,
double _h1sf,
double _h1d,
double _h2z,
double _h2kkd,
double _h2fkd,
double _h2b,
double _h2sf,
double _h2d,
double _pn,
double _pz,
double _pkkd,
double _pfkd,
double _pb,
double _psf,
double _pd,
double _sz,
double _skkd,
double _sfkd,
double _sb,
double _ssf,
double _sd,
string _name,
double _nm,
double _npa,
double _za,
double _k
)
{
...
//Array zum abspeichern der kombinationen
string[] varianten = new string[moeglichkeiten_int];
for (int n = 1; n < m; n++)
{
varianten[n] = " " + " h1= " + arr2D[n, 0] + " h2: " + arr2D[n, 1] + " s: " + arr2D[n, 2] + " p: " + arr2D[n, 3] + " \n ";
}
//Stringbuilder fügt alle möglichen Kombinationen in eine Zeichenkette für die Ausgabe
StringBuilder Ausgabetext = new StringBuilder();
for (int n = 1; n < m; n++)
{
Ausgabetext.Append(varianten[n]);
}
System.Windows.Forms.MessageBox.Show("varianten \n berechnet");
//string Ausgabetext_varianten_fertig = Ausgabetext.ToString();
return Ausgabetext.ToString(); im moment heißt es: keine überladung für die vorschlag-methode nimmt 0 argumente an. und das bezieht sich auf: Code: x.vorschlag(); Code: Lib_Wolfrom x = new Lib_Wolfrom();
textBox1.Text = x.vorschlag(); ps.: ich hab gerade echt nen brett vorm kopf |
| | |
| | #14 (permalink) |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 51 | Du solltest dir vielleicht erstmal Grundlagen anlesen Was sofort auffällt ist deine Form.cs. Erstmal würde ich die Instanz von lib_wol... nicht in der button Funktion erstellen sondern weiter oben in der Klasse Form, um diese Instanz in der gesamten Form nutzen zu können. Wieso machst du eigentlich 2 Instanzen auf? Und hast du überhaupt einen Konstruktor in deiner Klasse Lib_..., mit den ganzen Parametern? Ich denke eher, es sollte so lauten: Code: Lib_Wolfrom x = new Lib_Wolfrom(); Code: textBox1.Text = x.vorschlag(double.Parse(h1z.Text),
double.Parse(h1kkd.Text),
double.Parse(h1fkd.Text),
double.Parse(h1b.Text),
double.Parse(h1sf.Text),
double.Parse(h1d.Text),
double.Parse(h2z.Text),
double.Parse(h2kkd.Text),
double.Parse(h2fkd.Text),
double.Parse(h2b.Text),
double.Parse(h2sf.Text),
double.Parse(h2d.Text),
double.Parse(pn.Text),
double.Parse(pz.Text),
double.Parse(pkkd.Text),
double.Parse(pfkd.Text),
double.Parse(pb.Text),
double.Parse(psf.Text),
double.Parse(pd.Text),
double.Parse(sz.Text),
double.Parse(skkd.Text),
double.Parse(sfkd.Text),
double.Parse(sb.Text),
double.Parse(ssf.Text),
double.Parse(sd.Text),
name.Text,
double.Parse(nm.Text),
double.Parse(npa.Text),
double.Parse(za.Text),
double.Parse(k.Text)); |
| | |
![]() |
| Stichworte |
| csharp, string, übergeben |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |