2012-09-22 6 views
0

Im LabelStatus의 텍스트를 클래스의 메시지로 설정하려하지만 작동하지 않습니다.다른 클래스의 값을 설정할 수 없습니다

클래스 :

public bool openConnection() 
{ 
    SetStatus("Connecting to " + Server);  
    //Mysql code 
} 

private void SetStatus(string msg) 
{ 
    Form1 form = new Form1(); 
    form.SetStatus(msg); 
} 

를 Form1 : 여기 내 코드의 내가 C 번호 (PHP는 사람)에 비교적 새로운 해요 및 내 인생을 알아낼 수 없습니다

public void SetStatus(string status) 
{ 
    labelStatus.Text = _status; 
} 

무엇 내가 잘못하고있다

+6

보기 ... 밑줄로 ... 오타입니다 ?? – horgh

+2

어디에 문제가 있습니까? –

+2

또한 폼에'Show' 또는'ShowDialog' 메소드를 호출해야합니다. –

답변

0

은 멤버 변수를 설정하고 함수의 매개 변수를 설정하지 않은 것처럼 보입니다.

//try something like this 
this._status = status; 
this.labelStatus.Text = this._status; 
0

labelStatus.Text를 설정, 당신은 당신이 SetStatus(string)에 전달 된 매개 변수를 설정하지 않는 것입니다. 실수로 데이터 멤버를 대신 사용하신 것으로 보입니다. 양식 코드에서

private void SetStatus(string msg) 
{ 
    Form1 form = new Form1(); 
    form.SetStatus(msg); 
    form.ShowDialog(this); 
} 
+0

'status'로 변경했지만 여전히 작동하지 않았습니다. – Ben

+0

@BenShepherd 설명해 주시겠습니까? "작동하지 않는다"는 것은 무엇을 의미합니까? 너는 무엇을 기대하고 있니? 대신 무엇이 발생합니까? – horgh

+0

이'form' 변수는 무엇입니까? 너는 그걸로 무엇이든 할 수 있니? 그냥 초기화하고 가비지 수집으로 남겨 두는 것 같습니다. – Artless

1

봅니다, 당신의 클래스 형태로 라벨의 상태 라벨을 변경할 생각합니다. 양식 레이블 텍스트를 변경하려면 이미 열려있는 양식의 개체가 필요합니다. 귀하의 클래스에 양식 변수를 정의하십시오.

public class ConnectionCheck 
{ 
    private Form myForm; 

    public void ConnectionCheck(Form form) 
    { 
    myForm = form; 
    } 

    public bool openConnection() 
    { 
    SetStatus("Connecting to " + Server);  
    //Mysql code 
    } 

    private void SetStatus(string msg) 
    { 
    //Call method to change label text 
     myForm .SetStatus(msg); 
    } 

} 

from1 코드 숨김 (form1.cs)에서 ConnectionCheck 개체를 만들 때 form1 개체를 전달하십시오.

ConnectionCheck connection = new ConnectionCheck(this); 

또한 _status를 매개 변수 variable로 변경하십시오. 이름에서

public void SetStatus(string status) 
{ 
    labelStatus.Text = status; 
} 
0

봐는 :`는`staus`는이다 그러나 몸에 당신은 _status를 사용하여 동일한을 만들기 위해 노력하고 공공 무효 대해 setStatus (문자열 상태)`에서

labelStatus.Text = **status**; 
관련 문제