1

Form1 というフォームと、自動生成される richtextbox1 というリッチ テキスト ボックスを取得したので、プライベートです。

サーバーに接続する別のクラスを取得しました。接続のステータスを出力したいのですが、Form1 クラスの richtextbox1.Text にしかアクセスできません。これには 2 つの解決策があります。私が知らないこと?

  1. テキストボックスを公開する

  2. それ以外の :

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
    

最初に form1 オブジェクトを作成し、それを使用して実行中のフォームを保存します。

//somewhere global
Form1 theform = new Form1();


Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(theform);

次に、接続クラスのどこかでオブジェクトを使用します。

4

2 に答える 2

2

あなたが使用できるパブリックプロパティを作成しForm1ます。

Form1.cs

public string TextBoxText
{
    get { return myTextBox.Text; }
    set { myTextBox.Text = value; }
}

その後、別のクラスから値を設定できます。

AnotherClass.cs

myForm1.TextBoxText = "Current server status";

アクセスするmyForm1方法は、他のクラスを呼び出す方法によって異なります。たとえば、フォームを他のクラスのコンストラクターに渡すことができます。

private Form1 myForm1 = null;
public AnotherClass(Form1 mainForm)
{
    myForm1 = mainForm;
    myForm1.TextBoxText = "Current server status";
} 
于 2013-06-16T17:28:02.933 に答える
0

Form1 でサーバーと通信するクラスを作成している場合は、それにイベントを追加し、作成時に Form1 でサブスクライブします。

于 2013-06-16T17:28:37.713 に答える