2017-11-10 1 views
0

QueryWindow에 텍스트 상자 textBoxQuery이 있습니다.다른 창에서 textBox의 텍스트를 읽는 방법

textBoxQueryText에 다른 창 MainWindow에 액세스해야합니다.

나는 QueryWindow에 다음과 같은 접근이 :

public string QueryString 
{ 
    get { return textBoxQuery.Text; } 
    set { textBoxQuery.Text = value; } 
} 

을 그리고 MainWindow에서 그것을 사용하려고 :

cmdLine += QueryString; 

그러나, 나는 CS0120 오류가 발생하고있다. "개체 참조가 비 정적 필드, 메서드 또는 속성에 필요합니다."

는 또한 QueryWindow에 다음과 같은 방법을 구현하는 시도 :

cmdLine += QueryWindow.queryString(); 

그러나 위의 방법으로도 문제가 해결되지 :

public string queryString() 
{ 
    return textBoxQuery.Text; 
} 

가 그런 MainWindow에서 다음을 사용.

Google을 통해 검색했지만 찾은 해결책 중 아무 것도 작동하지 않는 것으로 나타났습니다. 다른 창/클래스에서 컨트롤의 속성에 액세스하는 올바른 방법은 무엇입니까?

+1

당신은 객체 지향 프로그래밍에 대한 큰 교훈을 놓치고 있습니다. 나는 먼저 책을 읽는 것으로 시작할 것입니다. – Steve

답변

0

오! 평가자는 QueryWindow 유형의 클래스 (객체) 인스턴스에 액세스하는 데 사용됩니다! Basicly, 당신은이 작업을 수행하여 쿼리 창 무리를 (각각 자신의 인스턴스가 될 것이다) 만들 수 있습니다

QueryWindow myQueryWindow1 = new QueryWindow(); 
myQueryWindow1.show() 
QueryWindow myQueryWindow2 = new QueryWindow(); 
myQueryWindow2.show() 
// Note, the shows are only needed to make instances visible to the user. 

만큼 당신이 myQueryWindow1 또는 myQueryWindow2에 대한 참조를 가지고 들어, 얻기 위해 acessor을 사용할 수 있습니다 예를의 상태 : 프로그램이 당신이 원하는 QueryWindow의 어떤 인스턴스를 알 수있는 방법이 없기 때문에

string myString = myQueryWindow1.queryString(); 

그래서 QueryWindow.queryString()이 작동하지 않을 것입니다!

희망이 도움이됩니다.

관련 문제