0

我试图将 LabelStatus 的文本设置为类中的一条消息,但它不起作用。这是我的代码:

班级:

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

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

表格1:

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

我对 C#(php 人)相当陌生,而且我一生都无法弄清楚我做错了什么

4

5 回答 5

1

尝试在表单上调用ShowDialogorShow方法

private void SetStatus(string msg) 
{ 
    Form1 form = new Form1(); 
    form.SetStatus(msg); 
    form.ShowDialog(this);
} 
于 2012-09-22T14:20:21.047 回答
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 代码隐藏(form1.cs)创建 ConnectionCheck 对象时传递 form1 对象。

ConnectionCheck connection = new ConnectionCheck(this);

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

public void SetStatus(string status)
{
    labelStatus.Text = status;
}
于 2012-09-22T14:44:20.990 回答
0

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

 //try something like this
this._status = status;
this.labelStatus.Text = this._status;
于 2012-09-22T14:12:58.563 回答
0

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

labelStatus.Text = **status**;
于 2012-09-22T14:51:12.163 回答
0

设置时labelStatus.Text,您没有使用传递给的参数进行设置SetStatus(string)。似乎您不小心使用了数据成员。

于 2012-09-22T14:15:46.157 回答