2009-12-03 4 views
0

Salut, je suis en train de réutiliser un code que je montrai plus tôt pour lancer une 3ème partie .exe à l'intérieur d'un WinForm monWinforms - Portée par M. de classe

le code m'a donné était

Greg Young

public class Native { 
     [DllImport("user32.dll", SetLastError = true)] 
     private static extern uint SetParent(IntPtr hWndChild, IntPtr hWndNewParent); 
     public static void LoadProcessInControl(string _Process, Control _Control) 
     { 
      System.Diagnostics.Process p = System.Diagnostics.Process.Start(_Process); 
      p.WaitForInputIdle(); 
      Native.SetParent(p.MainWindowHandle, _Control.Handle); 
     } 
    } 

où l'exécution serait

public partial class Form1 : Form { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
     private void Form1_Load(object sender, EventArgs e) 
     { 
      LoadProcessInControl("notepad.exe", this.splitContainer1.Panel1); 
      LoadProcessInControl("notepad.exe", this.splitContainer1.Panel2); 
     } 
    } 

Cependant, je garde gett erreur ING:

The name 'LoadProcessInControl' does not exist in the current context 

Portée des classes est encore un point faible dans mes connaissances en programmation et j'espère comprendre un peu mieux.

J'ai essayé passer la classe publique et la suppression de la méthode statique (charge procincontrol) mais je ne reçois pas partout)

Merci pour votre aide

Répondre

3

Dans la fonction Form1_Load(), essayez de faire référence à Native.LoadProcessInControl() au lieu de simplement LoadProcessInControl().

+0

qui me fait « Une référence d'objet est nécessaire pour le champ non statique, méthode ou propriété « Perls.Form1.Native.LoadProcessInControl (string, System.Windows.Forms.Control) » \t » – Crash893

+0

NEVERMIND cela fonctionne (J'ai enlevé statique de l'OC et j'ai oublié de le remettre) Merci – Crash893

Questions connexes