2010-02-22 6 views
1

Je crée un éditeur richtextbox et j'ai besoin de mettre une fonction de sauvegarde ainsi qu'une sauvegarde sous. Je peux facilement faire une sauvegarde en utilisant le savefiledialog mais je ne sais pas comment enregistrer sans cela. Quelqu'un peut-il aider?Comment enregistrer ne pas enregistrer sous

Répondre

7

Créez un champ quelque part, par exemple string filename. Réglez-le sur null initialement.

Lorsqu'un document est ouvert, stockez le nom de fichier dans un filename.

Lorsqu'un document est enregistré via Enregistrer sous, stockez également ce nom de fichier au filename.

Lorsque Enregistrer est invoqué, vérifiez la valeur filename. Si c'est null, appelez Enregistrer sous à la place. Si ce n'est pas null, enregistrez le nom de fichier spécifié dans filename.

+0

Et si vous avez une charge() pour remplir l'éditeur d'un fichier, puis définissez également que «le nom de fichier. –

+0

merci exactement ce dont j'avais besoin. Juste une autre question cependant. Comment afficher un message si vous avez cliqué sur le bouton "Nouveau document" et que le texte a été modifié depuis sa dernière sauvegarde. Je sais comment faire la boîte de message etc. mais pas pour seulement quand le document a été édité et non sauvé .. si vous comprenez ..: - S – Pops

+0

@Pops: Quand le dossier est changé alors placez un booléen 'UnsavedChanges' à vrai. Quand il est enregistré, définissez-le sur false. –

5

La façon dont cela fonctionne habituellement est de garder une trace du nom de fichier que l'utilisateur a ouvert ou enregistré comme. Puis, lorsqu'ils utilisent la fonction Sauvegarder, enregistrez simplement le nom de fichier spécifié précédemment. Si aucun fichier n'a été spécifié, affichez Enregistrer sous.

2

Est-ce que "Save" n'est pas simplement ce qui suit (en pseudo-code)?

Save() = 
    WriteTo(oldfilename) 

SaveAs() = 
    stream = OpenDialog() 
    oldfilename = stream.filename 
    Save() 
Questions connexes