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

ShowDialogフォームでまたはShowメソッドを呼び出してみてください

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

名前を見てください: それらを同じにしようとします, 見てください

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

関数のパラメーターではなく、メンバー変数を設定しているようです。

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

を設定するときlabelStatus.Textは、に渡したパラメータで設定していませんSetStatus(string)。代わりに誤ってデータ メンバーを使用したようです。

于 2012-09-22T14:15:46.157 に答える