2016-01-27 1 views
0

Ces derniers jours, j'ai développé un bloc-notes personnalisé. J'ai créé beaucoup de boutons etc, avec l'un d'eux étant "Open File" qui est utilisé pour ouvrir .txt fichiers.Ouverture des fichiers .txt avec mon bloc-notes personnalisé

Cela fonctionne bien, cependant, si je devais ouvrir un fichier .txt en cliquant dessus, et ne pas l'ouvrir à partir de l'application elle-même, le fichier .txt apparaît vide.

Les prochains écrans d'impression peuvent aussi bien décrire la situation mieux:

1) enter image description here 2) enter image description here 3) enter image description here 4) enter image description here

Le code que j'ai essayé la dernière fois était le suivant:

// Path being path = ofd.FileName; 
    ofd = OpenFileDialog 


    if (File.Exists(path)) 
     { 
     sr = new StreamReader(ofd.FileName); 
     userTB.Text = sr.ReadToEnd(); 
     this.Name = path; 
     sr.Close(); 
     } 

Répondre

2

Si vous souhaitez ouvrir le fichier avec votre programme associé. Vous devrez vérifier les arguments envoyés à votre programme.

Dans votre programme.cs, vous pouvez récupérer ces arguments.

static void Main(string[] args) 
    { 
     //with args(user open file with the program) 
     if (args != null && args.Length > 0) 
     { 
      string fileName = args[0]; 
      //Check file exists 
      if(File.Exists(fileName)) 
      { 
       //start your application with the path argument and use it to open the file onload 
      } 

     } 
      //without args 
     else 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new Form1()); 
     } 
    } 
+0

[ce] (http://www.codeproject.com/Tips/809638/Open-associated-files-with-Csharp-program) pourrait aussi vous aider: – Mathijs

+0

je soit obtenir un message me disant que "Application.SetCompatibleTextRenderingDefault (false); doit être compilé avant que WIN32 démarre smth" ou si je change le code à quelque chose comme http://prntscr.com/9vm7jf alors le programme ne s'ouvre même pas. – VaggelisD

+0

Je ne suis pas sûr du problème. Mais ce que vous pouvez faire, c'est ouvrir votre formulaire avec un argument. Application.Run (nouveau Form1 (nomFichier)); Mais cela vous demandera de changer le constructeur de votre formulaire. Puisque vous aimez envoyer des captures d'écran, voici une capture d'écran à quoi devrait ressembler votre constructeur: [link] (http://puu.sh/mLSh0/b5d832625a.png). Le premier constructeur sera appelé lorsqu'il n'y a pas d'argument présent, sinon l'autre sera exécuté. – Mathijs