无法从另一个类设置值

时间:2012-09-22 14:08:11

标签: c# class variables

我试图将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家伙)的新手,因为我的生活无法弄清楚我做错了什么

5 个答案:

答案 0 :(得分:1)

尝试在表单上调用ShowDialogShow方法

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

答案 1 :(得分:0)

看起来像是在设置成员变量而不是函数的参数。

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

答案 2 :(得分:0)

设置labelStatus.Text时,您不会使用传递给SetStatus(string)的参数进行设置。您似乎意外地使用了数据成员。

答案 3 :(得分: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);
  }

}

在创建ConnectionCheck对象时从from1 codebehind(form1.cs)传递form1对象。

ConnectionCheck connection = new ConnectionCheck(this);

另外,将_status更改为参数变量。

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

答案 4 :(得分:0)

查看名称:尝试使它们相同,参见

labelStatus.Text = **status**;