Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3081 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#]sauver un richtextbox créé dans un onglet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C#]sauver un richtextbox créé dans un onglet

n°1362779
transistor​49
Posté le 09-05-2006 à 20:39:10  profilanswer
 

Bonjour, j'ai un probleme, je n'arrive pas a récupérer la valeur de mon
text box que je crée quand je créer un onglet: pourtant le code me
semble bon, et il compile aussi, mais il rentre dans mon catch, et
n'arrive pas a finir le try!
 
voila mon code:
 

Code :
  1. private void NewTab(string page,string titre)
  2.         {
  3.             int height = FHelpdev.ActiveForm.Size.Height;
  4.             int width = FHelpdev.ActiveForm.Size.Width;
  5.             tabIndexNbre = TCTexte.TabCount;
  6.             //tabIndexNbre++;
  7.             TabPage tbPage = new TabPage(titre);
  8.             //tbPage.Name = tbPage + tabIndexNbre.ToString();
  9.             TCTexte.Controls.Add(tbPage);
  10.             RichTextBox TbTexteNew = new RichTextBox();
  11.             TbTexteNew.Text = page;
  12.             TbTexteNew.TabIndex = tabIndexNbre;
  13.             TbTexteNew.Name = "TbTexteNew" + tabIndexNbre.ToString();
  14.             tbPage.Controls.Add(TbTexteNew);
  15.             TCTexte.SelectedIndex = tabIndexNbre;
  16.             TCTexte.TabIndex = tabIndexNbre;
  17.             TbTexteNew.Size = new System.Drawing.Size(width - 17, height - 120);
  18.             CountTab();
  19.         }
  20.         private void SaveAs()
  21.         {
  22.             SFDSave.InitialDirectory = Application.ExecutablePath;
  23.             SFDSave.Filter = "Fichiers texte (*.txt)|*.txt|Tous les fichiers (*.*)|*.*";
  24.             SFDSave.FilterIndex = 0;
  25.             // on affiche la boîte de dialogue et on récupère son résultat
  26.             if (SFDSave.ShowDialog() == DialogResult.OK)
  27.             {
  28.                 // on récupère le nom du fichier
  29.                 nomFichier = SFDSave.FileName;
  30.                 StreamWriter fichier = null;
  31.                 try
  32.                 {
  33.                     int index = TCTexte.SelectedIndex;
  34.                     // on ouvre le fichier en écriture
  35.                     fichier = new StreamWriter(nomFichier);
  36.                     index++;
  37.                     // on écrit le texte dedans
  38.                    string backup = ((RichTextBox)tbPage.Controls["TbTexteNew" + index.ToString()]).Text;
  39.                     fichier.Write(backup);
  40.                 }
  41.                 catch (Exception ex)
  42.                 {
  43.                     // problème
  44.                     MessageBox.Show("Problème à l'écriture du fichier (" +
  45.                     ex.Message + " )", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
  46.                     return;
  47.                 }
  48.                 finally
  49.                 {
  50.                     // on ferme le fichier
  51.                     try { fichier.Close(); }
  52.                     catch (Exception) { }
  53.                     string[] nameFileTableau = nomFichier.Split('\\');
  54.                     int nbreTxt = nameFileTableau.Length;
  55.                     TCTexte.SelectedTab.Text = nameFileTableau[nbreTxt-1];
  56.                 }//finally
  57.                 setNameFile(nomFichier);
  58.             }//if
  59.         }


En gros, c'est un editeur de texte qui s'ouvre dans dans onglet, avec création d'onglets automatique.
 mon probleme est ici:

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


Quelqu'un pourrait m'aider?


Message édité par transistor49 le 09-05-2006 à 20:49:31

---------------
transistor49
mood
Publicité
Posté le 09-05-2006 à 20:39:10  profilanswer
 

n°1362794
moi23372
Posté le 09-05-2006 à 20:54:04  profilanswer
 

tu me fais rire, il déclenche une exception. D'accord, mais le message d'erreur il sert à quoi?  
Oui oui à quelque chose
 
Moi à ta place je parcourerais les controls de ton tab (dans une boucle par exemple) et tu teste sur le casting. Si ça te renvoit null c'est pas un richtext sinon ça en est un...

n°1362810
transistor​49
Posté le 09-05-2006 à 21:07:29  profilanswer
 

voila l'exeptio, perso, je ne la trouve pas explicite :
La référence d'objet n'est pas définie à une instance d'un objet.
 
Et sachant que tout mes tabControle possede des richtext, je ne peut pas faire ta solution.
ce que j'essaie de récupérer, c'est la valeur du richt text a sauvegarder, car il peut y en avoir une infinité


---------------
transistor49
n°1362832
moi23372
Posté le 09-05-2006 à 21:36:08  profilanswer
 

c clair que ma solution est possible quelque soit le nombre de controles.

n°1362859
transistor​49
Posté le 09-05-2006 à 22:11:32  profilanswer
 

et donc tu fait de cette manière?

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


parce que moi sa plante!


---------------
transistor49

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#]sauver un richtextbox créé dans un onglet

 

Sujets relatifs
probleme d'id pour cree un forum php[C++] Modifier l'onglet Récupération de la gestion d'un service
problème de diaporama creé en javascriptcomment aprendre à crée un site web ?
Protéger un ongletComment crée une function en Batch (Dos)
Tabcontrol trop plein ? Onglet qui met une plombe à charger...[Avis]J'ai crée 2 softs et une applet, puis-je avoir votre avis ?
comment je peux créé un fichier éxécutable svpOnglet dans un form
Plus de sujets relatifs à : [C#]sauver un richtextbox créé dans un onglet


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)