Entwickler-Ecke
WinForms - Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Csharp-programmierer - So 20.09.15 09:14
Titel: Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Hallo ihr Experten. Ich stehe auf dem Schlauch. Ich habe 2 Strings, die beide einen Wert zurückgeben. Bei dem ersten String haut alles hin. Bei dem 2. kommt eine Fehlermeldung: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Hier der 1. String:
C#-Quelltext
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: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71:
| private string Überschrift_Generieren() { Strings_Leeren(); tabs = this.numericUpDown2.Value; for (int i = 0; i < tabs; i++) { tabs1 += "\t"; }
this.color = "color=\"" + ColorTranslator.ToHtml(this.button1.BackColor) + "\""; switch (this.comboBox1.SelectedIndex) { case 0: überschrift = "<h1>"; überschrift1 = "</h1>"; break; case 1: überschrift = "<h2>"; überschrift1 = "</h2>"; break; case 2: überschrift = "<h3>"; überschrift1 = "</h3>"; break; case 3: überschrift = "<h4>"; überschrift1 = "</h4>"; break; case 4: überschrift = "<h5>"; überschrift1 = "</h5>"; break; case 5: überschrift = "<h6>"; überschrift1 = "</h6>"; break; default: überschrift = "<h1>"; überschrift1 = "</h1>"; break; }
foreach (string s in checkedListBox1.CheckedItems) { switch (s) { case "<marquee>": marquee = "<marquee>"; marquee1 = "</marquee>"; break; case "<center>": center = "<center>"; center1 = "</center>"; break; case "<u>": typ += "<u>"; typ1 += "</u>"; break; case "<i>": typ += "<i>"; typ1 += "</i>"; break; case "<b>": typ += "<b>"; typ1 += "</b>"; break; } } this.text = this.richTextBox1.Text; test = überschrift + center + "<font" + " " + font + " " + color + " " + size1 + ">" + marquee + typ + text + typ1 + marquee1 + überschrift1 + center1 + color1 + font1; return test; |
Aufgerufen wird er dann so:
C#-Quelltext
1:
| MessageBox.Show(Überschrift_Generieren()); |
Hier der 2. String (mit der Fehlermeldung):
C#-Quelltext
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:
| private string schriftzug_generator() { xytabs = this.numericUpDown3.Value; xysize = this.numericUpDown1.Value; for(int i = 0; i < xytabs; i++) { xtabs += "\t"; }
xcolor = "color=\"" + ColorTranslator.ToHtml(this.button8.BackColor) + "\""; xtext = this.richTextBox2.Text;
foreach(string s in checkedListBox2.CheckedItems) { switch (s) { case "<marquee>": xmarquee = "<marquee>"; xmarquee1 = "</marquee>"; break; case "<center>": xcenter = "<center>"; xcenter1 = "</center>"; break; case "<b>": xtyp += "<b>"; xtyp1 += "</b>"; break; case "<i>": xtyp += "<i>"; xtyp1 += "</i>"; break; case "<u>": xtyp += "<u>"; xtyp1 += "</u>"; break;
} }
this.xtest = xcenter + "<font" + xcolor + xfont + xsize.ToString() + ">" + xtyp + xmarquee + text + xmarquee1 + xtyp1 + "</font>" + xcenter1; return xtest; } |
Augerufen wird er wie der 1. String.
Die Form, auf der sich die Strings befinden wird so aufgerufen:
C#-Quelltext
1: 2: 3:
| Form6 a = new Form6(); a.überschrift_Transfer1 += new Form6.Überschrift_Transfer(s); a.ShowDialog(); |
Hier wird ein Event angehängt. Auf der Form mit den String befindet sich eine TabControl, mit 2 TabPages (Überschrift, Schriftzug). Bei der ersten TabPage haut alle hin. Bei der 2. kommt der Fehler. Woran liegt es?
Mfg :=)
Moderiert von
Th69: Titel geändert (statt einfach nur "Programmfehler").
Th69 - So 20.09.15 09:34
Hallo,
dies ist eine sog.
NullReferenceException, die du als Programmierer selber lösen können solltest. Benutze dafür den Debugger und lass dir die Variablenwerte anzeigen (wenn die Fehlermeldung im Visual Studio erscheint):
[Artikel] Debugger: Wie verwende ich den von Visual Studio? [
http://www.mycsharp.de/wbb2/thread.php?threadid=109261]
PS:
| Csharp-programmierer hat folgendes geschrieben: |
| Ich habe 2 Strings, die beide einen Wert zurückgeben. |
Du meinst, du hast 2 Methoden, welche jeweils einen
String zurückgeben (in der Programmierung und bei der Fehlerbeschreibung ist es wichtig, sich korrekt auszudrücken).
Csharp-programmierer - So 20.09.15 10:47
Ich habe es mir jetzt durchgelesen. Das die 2. Methode fast genau so aufgebaut ist, wie die erste, kann ich mir nicht erklären, warum ein Fehler auftritt. Könnten Sie mir vielleicht konkret erklären, wo in meinem Quellcode der Fehler liegt?
Th69 - So 20.09.15 11:13
Sorry, aber wir sind kein Fehlersuch-Forum.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!