Autor Beitrag
Csharp-programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: So 20.09.15 09:14 
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:
ausblenden volle Höhe 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:
ausblenden C#-Quelltext
1:
MessageBox.Show(Überschrift_Generieren());					


Hier der 2. String (mit der Fehlermeldung):
ausblenden volle Höhe 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:
ausblenden 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 user profile iconTh69: Titel geändert (statt einfach nur "Programmfehler").
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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?

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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4805
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 20.09.15 11:13 
Sorry, aber wir sind kein Fehlersuch-Forum.
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.