2014-02-05 3 views
0

나는 서로의 부모/자식이 아니며 각각에 대해 만들어진 클래스가있는 2 개의 창을 얻었습니다. ClassA와 ClassB로 이름을 지어 봅시다. ClassA에서 이벤트 버튼을 클릭하는 중입니다. 모두 내가하고 싶은 건 버튼을 클릭 한 후 클래스 B에서 변수를 전달하면 그 변수를 사용하여 ClassA 함수 중 하나를 실행합니다.이벤트 후 다른 클래스의 클래스에 값 전달

+0

그리고 무엇을 이미 시도 했습니까? – Robert

+1

나는 classA에서 classB의 인스턴스를 만들어 valuse를 전달하려고 시도했으며 그 변수를 전달했습니다. 하지만 문제는 해결되지 않습니다. 왜냐하면 저는 그 변수를 거기에 넣을 수는 없기 때문에 메서드에 대한 첫 번째 호출에서 특정 값을 가져야하고 시간이 지나면이를 변경하고 메서드를 실행하려고합니다. –

답변

1

ClassB 인스턴스를 사용하여 추가 이벤트없이 수행 할 수 있습니다. 정적 인 클래스가 아니라면 분명히 인스턴스가 필요합니다. 예를 들어 생성자에서 또는 속성을 사용하여 인스턴스를 전달할 수 있습니다.

public ClassA 
{ 
    private ClassB classBInstance; 

    public ClassA(ClassB classBInstance) 
    { 
     this.classBInstance = classBInstance; 
    } 

    void buttonClick(...) 
    { 
     classBInstance.SomeFunction(someVariable); 
    } 
} 

public ClassB 
{ 
    void SomeFunction(paramater) 
    { 
     mySecretVariable = parameter; 
     CallAnotherMethodThatUsesThisVariable(); 
    } 
} 
+0

나는 내 개념을 오해 한 것 같아. 클래스 A에서 클래스 B로 변수를 가져 오려고합니다. 클래스 A에서 무언가를 클릭하고 클릭 한 후에 클래스 B에서 메서드를 높이려고합니다. –

+0

@ user3274820 아, 변경하겠습니다. –

+0

ClassA에서 이벤트를 만들고 ClassA에서 ClassA에 대한 참조를 보유하고 ClassA에서 이벤트를 발생시키는 ClassB에 메서드를 연결해야합니다. 이벤트 만들기에 대한 소개를 먼저 찾습니다. –