[c#]tabControl et richtextbox

Signaler
Messages postés
4
Date d'inscription
samedi 6 mai 2006
Statut
Membre
Dernière intervention
8 mai 2006
-
Messages postés
4
Date d'inscription
samedi 6 mai 2006
Statut
Membre
Dernière intervention
8 mai 2006
-
Bonjour, j'essaie de développerunediteur de texte avec des onglets.

Je peut créerun onglet, avec le richtextbox dedans,ouvrir un fichier
dans un nouvel onglet,mais mon probleme est de sauvegarder ce qui a été
saisie, je ne sauvegarde quecequ'il y a dans le premier onglet, je
n'arrive pas a sauvegarder ce qu'il y a dans les onglets suivants.

voila moncode de création d'onglet:

private void NewTab(string page,string titre)

        {

            tabIndex++;

            TabPage tbPage = new TabPage(titre);

            RichTextBox TbTexteNew = new RichTextBox();

            TbTexteNew.Text = page;

            TbTexteNew.TabIndex = tabIndex;

            TCTexte.Controls.Add(tbPage);

            tbPage.Controls.Add(TbTexteNew);

            TCTexte.SelectedIndex=tabIndex;

            TCTexte.TabIndex = tabIndex;

            int height = FHelpdev.ActiveForm.Size.Height;

            int width = FHelpdev.ActiveForm.Size.Width;

            TbTexteNew.Size = new System.Drawing.Size(width - 17, height - 120);

        }

Je pense que c'est acausedu nom du rich textbox, il mefaudrait pouvoir
lui attribuer un numérosuivant le numéro de l'onglet, ou quelque chose
comme ça, est-ce que quelqu'un peut m'aider?

projet helpdeveloppement
clan games

2 réponses

Messages postés
4
Date d'inscription
samedi 6 mai 2006
Statut
Membre
Dernière intervention
8 mai 2006

J'ai l'impression que mon problème n'inspire personne!!!

J'ai essayer de contourner le probleme, en créant un a un les onglet
avec leur zones texte mais c'est limité et non optimiser, donc c'est
pas propre!

projet helpdeveloppement
clan games
Messages postés
4
Date d'inscription
samedi 6 mai 2006
Statut
Membre
Dernière intervention
8 mai 2006

Voila, j'ai un peu évolué dans le code, voila ou j'en suit:

private void NewTab(string page,string titre)

{

int height = FHelpdev.ActiveForm.Size.Height;

int width = FHelpdev.ActiveForm.Size.Width;

tabIndexNbre = TCTexte.TabCount;

//tabIndexNbre++;

TabPage tbPage = new TabPage(titre);

//tbPage.Name = tbPage + tabIndexNbre.ToString();

TCTexte.Controls.Add(tbPage);

RichTextBox TbTexteNew = new RichTextBox();

TbTexteNew.Text = page;

TbTexteNew.TabIndex = tabIndexNbre;

TbTexteNew.Name = "TbTexteNew" + tabIndexNbre.ToString();

tbPage.Controls.Add(TbTexteNew);

TCTexte.SelectedIndex = tabIndexNbre;

TCTexte.TabIndex = tabIndexNbre;

TbTexteNew.Size = new System.Drawing.Size(width - 17, height - 120);

CountTab();

}



private void SaveAs()

{

SFDSave.InitialDirectory = Application.ExecutablePath;

SFDSave.Filter = "Fichiers texte (*.txt)|*.txt|Tous les fichiers (*.*)|*.*";

SFDSave.FilterIndex = 0;

// on affiche la boîte de dialogue et on récupère son résultat

if (SFDSave.ShowDialog() == DialogResult.OK)

{

// on récupère le nom du fichier

nomFichier = SFDSave.FileName;

StreamWriter fichier = null;

try

{

int index = TCTexte.SelectedIndex;

// on ouvre le fichier en écriture

fichier = new StreamWriter(nomFichier);

index++;

// on écrit le texte dedans

string backup = ((RichTextBox)tbPage.Controls["TbTexteNew" + index.ToString()]).Text;

fichier.Write(backup);

}

catch (Exception ex)

{

// problème

MessageBox.Show("Problème à l'écriture du fichier (" +

ex.Message + ")", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);

return;

}

finally

{

// on ferme le fichier

try { fichier.Close(); }

catch (Exception) { }

string[] nameFileTableau = nomFichier.Split('\\');

int nbreTxt = nameFileTableau.Length;

TCTexte.SelectedTab.Text = nameFileTableau[nbreTxt-1];

}//finally

setNameFile(nomFichier);

}//if

}

Mais j'ai une erreur a cette endroit :

string backup = ((RichTextBox)tbPage.Controls["TbTexteNew" + index.ToString()]).Text;

il me retourne une erreur :


La référence d'objet n'est pas définie à une instance d'un objet.
projet helpdeveloppement
clan games