2012-09-22 83 views
0

我試圖將LabelStatus的文本設置爲類中的消息,但它不起作用。 這裏是我的代碼:無法設置另一個類的值

類:

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

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

Form1中:

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

我是相當新的C#(PHP的傢伙),爲我的生活不能弄清楚什麼我做錯了

+6

在'公共無效SetStatus(字符串狀態)'是'staus',但在它的身上你使用_status ...用下劃線......是一個錯字? – horgh

+2

問題在哪裏? –

+2

你也需要調用你的表格中的Show或ShowDialog方法 –

回答

0

看起來像你正在設置成員變量,而不是函數的參數。

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

當設置labelStatus.Text,你不跟你傳遞給SetStatus(string)參數設置它。看起來你不小心使用了一個數據成員。

+0

我將它改爲了status,但它仍然不起作用。 – Ben

+0

@BenShepherd你能解釋一下,你是什麼意思,說「沒有工作」?你在期待什麼?而發生什麼呢? – horgh

+0

這個'form'變量是什麼?你有沒有做過任何事情?它看起來像你剛剛初始化它,並將其留給垃圾收集。 – Artless

1

嘗試調用ShowDialogShow方法表單

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

從你的代碼,我認爲你的類是改變表單標籤的狀態標籤。要更改表單標籤文本,您需要已打開表單的對象。在你的班級中定義形式的變量。

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 codebehind(form1.cs)開始ConnectionCheck對象創建時傳遞form1對象。

ConnectionCheck connection = new ConnectionCheck(this); 

而且,將_status更改爲參數變量。

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

看名字:儘量讓他們一樣,看到

labelStatus.Text = **status**;