2014-09-26 3 views
0

Windows 응용 프로그램에 Visual Studio 2013을 사용하면 MainForm에 다른 코드를 실행해야하는 코드가 있고이 필요한 코드를 다른 클래스로 이동하려고합니다. 혼자C#에서 다른 클래스 가져 오기

내가 여기, 여기에 코드를 이동 남녀 공학에 포함되어있는 몇 가지 물건 때 그 클래스를 가져올 수있을 수없는 것 (더 편안 MainForm 클래스가 이해할 수 있도록하기 위해)을 가져옵니다

static void WinEventProc(IntPtr hWinEventHook, uint eventType, 
     IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime) 
    { .. } 

일부

delegate void WinEventDelegate(IntPtr hWinEventHook, uint eventType, 
    IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime); 

    [DllImport("user32.dll")] 
    static extern uint GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId); 

그래서 사람들은 내

namespace myClass 
{ 
    public partial class MainForm : Form 
    { 

내부 일반적이었다 그러나 나는 그들에게 당신은 '수입'그들이 다른에해서 할 필요가 없습니다

+0

u를 사용하려면를 [상속] (HTTP : //msdn.microsoft.com/en-US/en-en/library/ms173149.aspx)? – Buzka91

+0

아마도 MainForm이 Form을 상속 받았을 수도 있습니다. 작동한다면 복수 상속을 찾을 것입니다. – user3795356

+0

그래서 Mainform : Form, myInterface도 작동하지 않았습니다. hmm – user3795356

답변

2

를 가져올 좀 다른 클래스에 넣어하고 싶어 수업 (같은 프로젝트). 다른 네임 스페이스를 사용하는 경우 이 포함될 수 있지만 필요하지는 않습니다.

예를 들어, 당신은 ... 다른 클래스 (아마도 더 나은 그들이 정적 인 방법이기 때문에, 정적 클래스가 될 수있는), 그리고 다른 코드에서 호출에 다음

namespace SameNamespace 
{ 
    static class NewClass 
    { 
     [DllImport("user32.dll")] 
     static extern uint GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId); 
    } 
} 

그들을 넣어 수 있습니다 당신이 그것을 필요로 wheneven 형태의 코드는 그냥 다음을 사용 :

NewClass.GetWindowThreadProcessId(...); 

당신은 예를 들어, 다른 네임 스페이스의 클래스를 넣어하려는 경우 :

,
namespace DifferentNamespace 
{ 
    ... 

는 다음 중 하나가과 같이, 그것을 포함 :

using DifferentNamespace; 

하거나 기능을 필요로 할 때 당신은 단지 명시 적으로 호출 할 수 있습니다 : U 의미

DifferentNamespace.NewClass.GetWindowThreadProcessId(...); 
+0

EVENT_OBJECT_NAMECHANGE, EVENT_OBJECT_NAMECHANGE와 같은 것들을 해결했습니다. 감사합니다. 오류가 발생해도 코드에서 아직 누락 된 것이 있습니다 – user3795356

+0

@ user3795356 : 그런 것들은 무엇입니까? 나는 당신의 질문에 그들을 볼 수 없다. – musefan

+0

그래, 대답으로 표시해야한다. 이 오류는 ur 코드에서 발생합니다. – Buzka91