Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

string von class nach form übermitteln

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 ...

Antwort
Alt 21.07.11, 11:37   #1 (permalink)
 
Registriert seit: 21.07.11
ma-thi-as Leistung: Facit NTK
Likes: 0
Angry string von class nach form übermitteln

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

ma-thi-as ist offline   Mit Zitat antworten
Alt 21.07.11, 11:42   #2 (permalink)
Member of Honour
 
Registriert seit: 01.02.02
AaFreak Leistung: Facit NTK
AaFreak eine Nachricht über ICQ schicken
Likes: 0
Standard

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
AaFreak ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 21.07.11, 11:58   #3 (permalink)
Themenstarter
 
Registriert seit: 21.07.11
ma-thi-as Leistung: Facit NTK
Likes: 0
Standard

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");
bis jetzt läuft das ganze noch über eine MessageBox, nur ab und zu wird die zu lang und man kann nicht mehr auf "OK" klicken.

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)
ma-thi-as ist offline   Mit Zitat antworten
Alt 21.07.11, 12:00   #4 (permalink)
Moderator
 
Benutzerbild von lightsaver
 
Registriert seit: 19.06.06
lightsaver Leistung: Pentium Ilightsaver Leistung: Pentium Ilightsaver Leistung: Pentium I
Likes: 51
Standard

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
lightsaver ist offline   Mit Zitat antworten
Alt 21.07.11, 12:03   #5 (permalink)
Themenstarter
 
Registriert seit: 21.07.11
ma-thi-as Leistung: Facit NTK
Likes: 0
Standard

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...
ma-thi-as ist offline   Mit Zitat antworten
Alt 21.07.11, 12:03   #6 (permalink)
Member of Honour
 
Registriert seit: 01.02.02
AaFreak Leistung: Facit NTK
AaFreak eine Nachricht über ICQ schicken
Likes: 0
Standard

Statt
Code:
public void vorschlag()
kannst du auch

Code:
public string vorschlag()
verwenden.

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();
}
In deinem Klick-Ereignis von dem Button kannst du nun auf den Rückgabewert zugreifen und diesen z.B. in einer Textbox ausgeben.
AaFreak ist offline   Mit Zitat antworten
Alt 21.07.11, 12:06   #7 (permalink)
Themenstarter
 
Registriert seit: 21.07.11
ma-thi-as Leistung: Facit NTK
Likes: 0
Standard

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?
ma-thi-as ist offline   Mit Zitat antworten
Alt 21.07.11, 12:11   #8 (permalink)
Themenstarter
 
Registriert seit: 21.07.11
ma-thi-as Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Zitat von ma-thi-as Beitrag anzeigen
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?

was nen quatsch, natürlich alles in der Lib_W... .cs
aber wie komme ich in der From.cs an den return wert?
ma-thi-as ist offline   Mit Zitat antworten
Alt 21.07.11, 12:12   #9 (permalink)
Member of Honour
 
Registriert seit: 01.02.02
AaFreak Leistung: Facit NTK
AaFreak eine Nachricht über ICQ schicken
Likes: 0
Standard

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();
            
        }
Lib_Wolfrom.cs:
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();            
  
}
oder wie auch immer deine Lib_Wolfrom aufgebaut ist.
AaFreak ist offline   Mit Zitat antworten
Alt 21.07.11, 12:16   #10 (permalink)
Moderator
 
Benutzerbild von lightsaver
 
Registriert seit: 19.06.06
lightsaver Leistung: Pentium Ilightsaver Leistung: Pentium Ilightsaver Leistung: Pentium I
Likes: 51
Standard

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);
}
Du kannst nun einfach statt
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.
lightsaver ist offline   Mit Zitat antworten
Alt 21.07.11, 12:21   #11 (permalink)
Themenstarter
 
Registriert seit: 21.07.11
ma-thi-as Leistung: Facit NTK
Likes: 0
Standard

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();
ma-thi-as ist offline   Mit Zitat antworten
Alt 21.07.11, 12:26   #12 (permalink)
Member of Honour
 
Registriert seit: 01.02.02
AaFreak Leistung: Facit NTK
AaFreak eine Nachricht über ICQ schicken
Likes: 0
Standard

Deine Lib.cs:

Code:
public class foo {
    public string bar(string arg1, string arg2) {
        return arg1 + arg2;
    }
}
Deine Form.cs:

Code:
private Button1_Click(..) {
    foo x = new foo();
    textBox1.text = x.bar("A", "B");
}
somit wird die Methode "bar" aus der Klasse "foo" aufgerufen.
Den Rückgabewert schreiben wir in die "textBox1". Diese sollte natürlich schon existieren.
AaFreak ist offline   Mit Zitat antworten
Alt 21.07.11, 12:42   #13 (permalink)
Themenstarter
 
Registriert seit: 21.07.11
ma-thi-as Leistung: Facit NTK
Likes: 0
Standard

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();
aber irgendwo ist immernoch was falsch...

im moment heißt es:
keine überladung für die vorschlag-methode nimmt 0 argumente an. und das bezieht sich auf:
Code:
x.vorschlag();
aus form.cs
Code:
            Lib_Wolfrom x = new Lib_Wolfrom();
            textBox1.Text = x.vorschlag();

ps.: ich hab gerade echt nen brett vorm kopf
ma-thi-as ist offline   Mit Zitat antworten
Alt 21.07.11, 13:01   #14 (permalink)
Moderator
 
Benutzerbild von lightsaver
 
Registriert seit: 19.06.06
lightsaver Leistung: Pentium Ilightsaver Leistung: Pentium Ilightsaver Leistung: Pentium I
Likes: 51
Standard

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();
In der Button Funktion machst du dann
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));
lightsaver ist offline   Mit Zitat antworten
Alt 21.07.11, 13:06   #15 (permalink)
Themenstarter
 
Registriert seit: 21.07.11
ma-thi-as Leistung: Facit NTK
Likes: 0
Thumbs up

DANKE ich habs auch gerade wie schuppen von den augen fallen sehen. es klappt jetzt

wünsche euch einen schönen tag und noch mal vielen dank für die hilfe!
ma-thi-as ist offline   Mit Zitat antworten
Antwort

Stichworte
csharp, string, übergeben
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » string von class nach form übermitteln
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61