Wątek przeniesiony 2017-10-08 18:38 z C# i .NET przez somekind.

Zapis tekstu Richtextboxa w TabControl do pliku

0

Witam,

Mam taki o to kod który ma zapisać mi teksty ze wszystkich RichTextBoxów które znajdują się w TabPage'ach problem w tym że nie zapisuje żadnego tekstu.

            string projectFile = projectPathFolder + @"\" + projectName + @"\" + projectName + ".project";
           
            for (int i = 0; i < tabControl1.RowCount; i++)
            {
                RichTextBox richText = tabControl1.Controls[i] as RichTextBox;

                using (var stream = new StreamWriter(File.Create(projectFile)))
                {
                    stream.Write(scintilla.Text);
                }

                File.WriteAllText(projectFile, "// " + tabControl1.TabPages[i].Text + "\n\n" + richText.Text, Encoding.UTF8);
            }
1
string projectFile = projectPathFolder + @"\" + projectName + @"\" + projectName + ".project";

i jak wygląda ten wynikowy projectFile? Masz tam prawa do zapisu?

           for (int i = 0; i < tabControl1.RowCount; i++)
           {
               RichTextBox richText = tabControl1.Controls[i] as RichTextBox;

Na pewno każda kontrolka w tabControl1 jest RichTextBoxem?
Zresztą po co to, skoro tego richText w ogóle nie używasz.
W ogóle najlepiej przechowywać kontener interesujących nas kontrolek osobno, np. w List<RichTextBox>, a nie polegać na Controls.

               using (var stream = new StreamWriter(File.Create(projectFile)))
... 
               File.WriteAllText(projectFile, "// " + tabControl1.TabPages[i].Text + "\n\n" + richText.Text, Encoding.UTF8);

Po co ci ten StreamWriter skoro możesz używać właśnie WriteAllText?

Cały kod wygląda jak sklejenie trzech różnych gotowców i nie wiesz co się w nim dzieje.

0

Sprawdź sobie krok po kroku, w którym miejscu masz problem.
Na początek sprawdź czy masz dane.

            for (int i = 0; i < tabControl1.RowCount; i++)
            {
                RichTextBox richText = tabControl1.Controls[i] as RichTextBox;
            MessageBox.Show(richText.Text);
            }

Nie napisałeś co się dzieje dalej.

  1. Plik Ci się nie tworzy ?
  2. Tworzy się plik, ale jest pusty. ?
  3. Wywala ci się program z wyjątkiem jakimś ?

W skrócie: o co kaman ?

0

Problem już rozwiązany.

1 użytkowników online, w tym zalogowanych: 0, gości: 1