1

非常に単純なタスクを実行するのに問題があります。Windowsフォームにリッチテキストボックスがあり、ボタンをクリックしないでアクセスしようとしています。コントロールは「パブリック」ではなく、変更したい場所でコード内で呼び出すことはできません。

私が得ているエラーは次のとおりです。非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です。私はそれが本当に初心者の質問であることを知っていますが、私はこれを解決するために多くの方法を試みました、そして私はそれを理解することができません。誰か助けてもらえますか?

コードは

public static void SeeIfFinished()
{
   if (FinishedThreadCount == 1)
   {
      richTextBox1.Text = "text";
   }
}
4

3 に答える 3

5

あなたのメソッドは静的です -static修飾子を削除し、フォームの特定のインスタンスを参照して呼び出します:

myForm.SeeIfFinished();

または、呼び出し元のコードがフォーム クラス内にある場合は、次のようにします。

SeeIfFinished();
于 2012-06-08T03:58:23.953 に答える
1

静的メソッド内でインスタンス化されたオブジェクトにアクセスすることはできません。

staticキーワードでマークされていないメソッドにコードを配置します。

于 2012-06-08T03:58:40.800 に答える
1

静的メソッドは、そのクラスの静的メンバーと、パラメーターとして渡されたもののみを表示できます。 richTextBox1はウィンドウクラスの静的メンバーではないため、静的メソッド内で参照することはできません。

静的メソッドにパラメータを追加します(RichTextBox richTextBox)。静的ウィンドウメソッドを呼び出すときは、を渡すrichTextBox1と機能するはずです。

于 2012-06-08T04:03:42.100 に答える