2009-12-03 65 views
0

你好我想重新使用一些代碼,我指着前面運行第三方.exe一個我的winform裏面的WinForms - 類範圍

我得到的代碼通過先生

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); 
     } 
    } 

地方執行會

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); 
     } 
    } 

但是我一直GETT ing錯誤:

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

類的範圍仍然是我的編程知識中的一個弱點,我希望能更好地理解它。

我已經試過類切換到公衆和方法(負載procincontrol)去除靜態的,但我沒有得到任何地方)

感謝您的幫助

回答

3

在Form1_Load的()函數,嘗試引用Native.LoadProcessInControl()而不僅僅是LoadProcessInControl()。

+0

說讓我「是必需的非靜態字段,方法或屬性‘Perls.Form1.Native.LoadProcessInControl(字符串,System.Windows.Forms.Control的)’的對象引用\t 」 – Crash893 2009-12-03 19:12:36

+0

沒關係它的工作原理(我刪除了靜態OC,忘了把它放回)謝謝 – Crash893 2009-12-03 19:14:07