string an eine void Funktion übergeben, warum geht es nicht?

Fridulin

Erfahrenes Mitglied
Hi,

Ich habe 3 Variablen die in 3 verschiendenen Funktionen gesetzt werden, per ComboBox.
Sie sehen wie folgt aus:
Code:
void form_tag(object sender, System.EventArgs e)
{
string tagbox = tag.SelectedItem.ToString(); 
string monatbox = null;
string jahrbox = null;
//start(tag.SelectedItem.ToString(), monatbox, jahrbox);
start(tagbox, monatbox, jahrbox);
//MessageBox.Show(tagbox);
}
void form_monat(object sender, System.EventArgs e)
{
string monatbox = monat.SelectedItem.ToString();
string tagbox = null;
string jahrbox = null;
start(tagbox, monatbox, jahrbox);
}
void form_jahr(object sender, System.EventArgs e)
{
string jahrbox = jahr.SelectedItem.ToString();
string tagbox = null;
string monatbox = null;
start(tagbox, monatbox, jahrbox);
}


das soll alles an die Funktion
void start(string tagbox, string monatbox, string jahrbox) übergeben werden, daß einlesen klappt alles es wird nur nicht an die Funktion übergeben, was mache ich fallsch?

Kann mir da einer Helfen?

Viele Grüße und Danke


 
Der angegebene Code sollte eigentlich stimmen. Was machst du mit den Variablen in der "start" - Methode Lass dir doch mal alle in einer MessageBox ausgeben, vielleicht kommst du dahinter...
 
Hi,

Danke für deine Antwort, ich habe mein Fehler gefunden, daß war meine doofheit. Ich habe "tag1 = tagbox;" genau falsch herum gesetzt gehabt. Mensch bin ich blöde.
Aber ich habe dennnoch ein neue Problem, wo ich nicht weterkomme.
Ich habe folgenden Code
Code:
string tag1 = null;
string monat1 = null;
string jahr1 = null;
if (tagbox != null)
{
tag1 = tagbox;
}
if (monatbox != null)
{
monat1 = monatbox;
}
if (jahrbox != null)
{
jahr1 = jahrbox;
}
if(((tag1 != null) && (monat1 != null) && (jahr1 != null)))
{
StreamWriter sw = new StreamWriter(Application.StartupPath + "\" + "speicher.txt", 
true);
sw.NewLine = "";
sw.WriteLine(tag1 + "." + monat1 + "." + jahr1 + "");
sw.Close(); 
}

Also ich setze jetzt von meinen 3 Funktionen jeweils mit einen OnChanced die Variable tagbox, monatbox, jahrbox. Da ich ja aber nur dann Speichern möchte wenn alle 3 aufeinmal gesetzt sind arbeite ich noch mit 3 anderen Variablen, tag1, monat1, jahr1. Diese werden gesetzt wenn sich etwas in die einen Variable befindet und dann wenn alle gesetzt ist stimmt ja die verschachtelte if Anweisung und Speichert daraufhin.
Nur mit meinem Code treffen komischerweise nie alle 3 Variablen zu. Sie werden zwar alle einzelnd von den Funktionen übergeben, aber wenn ich die alle 3 ausfülle trifft die if anweisung nie zu. Wenn ich immer nur if (tag1 =! null) mache dann Speichert er sowie bei den anderen auch, aber nicht alle gleichzeitig.
Wo ist mein Denkfehler, kann mir da einer Helfen?


Grüße und danke!
 
in deinen 3 oben genannten funktionen setzt du jeweils 2 Werte auf null und übergibst Sie dann an die funktion start.
Daher ist klar, dass immer nur 1 wert ungleich null ist.
 
Hi,

Ja das habe ich auch gemerkt, deshabl dachte ich es so, ich übergebe eine Variable die anderen mit Null und schreibe die Variable in einer neuen Variable, die nicht immer wieder auf null gesetzt wird und somit prüfe ich dann die anderen. Aber das Funktioniert auch nicht, denn diese setze ich auch wieder auf Null. Aber neija ich habe es jetzt ganz anders gelöst, ich bin weg von dieser onChanced sache und habe noch 1 Button eingebaut, sobald dieser betätigt wird, werden die inhalte der boxen gelesen udn dann alle auf einmal in eine Datei geschrfieben. Ist viel besser die Lösung.

Danke nochmal für deine / eure Hilfe!

Grüße
 

Neue Beiträge

Zurück