Sélectionnet et ouvrir un fichier PDF sous 2010

JRDX Messages postés 5 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 26 août 2010 - 26 août 2010 à 17:40
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 26 août 2010 à 18:08
Bonjour à tous,

J'ai écrit pour sélectionner et imprimer un fichier pdf le morceau de code suivant qui fonctionne correctement pour rechercher et sélectionner le fichier mais pas pour m'ouvrir. Je me fait jeter sur la ligne p.StartInfo.FileName = TextBox1.Text où la dernière variable est rejeté comme n'appartenant pas à l'instance. La suggestion de l'aide avec le mot clé new n'a pas marché non plus.

Pouvez-vous m'aider ?

Merci d'avance

Cordialement

Private Sub BtnRechercher_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnRechercher.Click
Dim CheminFichier As String

Dim p As Process
OpenFileDialog1.Filter = "Tous les fichiers (*.*)|*.*"
OpenFileDialog1.ShowDialog()
'Si le bouton Annuler n'est pas sélectionné, charge la variable CheminFichier
If OpenFileDialog1.FileName <> "" Then
CheminFichier = OpenFileDialog1.FileName
TextBox1.Text = CheminFichier
p.StartInfo.FileName = TextBox1.Text
p.StartInfo.Verb = "Open"
p.StartInfo.CreateNoWindow = True
p.Start()
Else
TextBox1.Text = "Aucun Ordre du jour n'a été sélectionné"
End If
End Sub

Schubert

3 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 août 2010 à 17:47
ta variable ne contient aucune instance de la classe process

Tu peux créer l'instance à la déclaration, dans ce cas il te faut écrire
Dim p as New Process

ou tu peux conserver la déclaration telle quelle, mais il te faudra créer une instance avant de pouvoir utiliser p :
Dim p as Process
....
p = New Process()
...
p.StartInfo...


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
JRDX Messages postés 5 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 26 août 2010
26 août 2010 à 18:00
Merci Casy de ta réponse rapide et .... qui règle mon problème puisqu'avec cette ligne tout fonctionne.

Une question, cela voudrait dire qu'il faut à chaque fois faire une déclaration dès lors que l'on change de procédure même au sein d'une même sub.

En tout cas encore merci, j'y ai passé quelques heures pour essayer de comprendre et de résoudre ce bug


Schubert
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 août 2010 à 18:08
Une question, cela voudrait dire qu'il faut à chaque fois faire une déclaration dès lors que l'on change de procédure même au sein d'une même sub.


Je comprend pas ta question.

Process est une classe de .Net

Lorsque tu déclare p de type Process tu déclare juste une variable comme étant de type Process, mais cette variable n'existe pas encore. Pour quelle existe il faut créer une nouvelle instance de la classe Process en mémoire et dire que cette classe sera accessible par ta variable.

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
Rejoignez-nous