2009-12-03 7 views
0

안녕 나는 주어진 코드가 선생님을 통해윈폼 - 클래스의 범위

이었다

내을 winform의 내부에 제 3 자 .exe을 실행하는 데 앞서 지적 된 몇 가지 코드를 재사용하기 위해 노력하고있어 내가 GETT을 유지하지만 그렉 영

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

될 경우 오류 :

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

클래스의 범위는 프로그래밍 지식에서 여전히 약점이며 조금 더 잘 이해하고 싶습니다.) 당신의 도움이를 Form1_Load에서

답변

3

에 대한

감사를

내가 대중에게 클래스 전환 및 방법 (부하 procincontrol)에서 정적 제거 시도했지만 난 아무데도받지 못했습니다() 함수, LoadProcessInControl() 대신 Native.LoadProcessInControl()을 참조하십시오. 저를 얻을 수

+0

는 "객체 참조가 비 정적 필드, 메서드 또는 속성 'Perls.Form1.Native.LoadProcessInControl (문자열, System.Windows.Forms.Control)'가 필요합니다 \t " – Crash893

+0

이 작동 신경 끄시 (나는 OC에서 정적을 제거하고 그것을 다시 넣는 것을 잊었습니다.) 감사합니다. – Crash893