2017-05-26 13 views
0

RichTextBoxコントロールを複数のstatic methodsから更新しようとしています。毎回、非常に速い時間間隔で多くのテキストを追加する必要があります。これはクライアント・サーバー型のアプリケーションであり、dllは静的ハンドラを利用しています。次のコードを使用していますが、静的メソッドからRichTextBoxにテキストが追加されていません。これをどうやって解決するのですか?スタティックメソッドを使用したRichTextBoxの更新

public partial class MyMainForm : Form 
    { 
     private static MyMainForm FrmReference; 

     private static void Handler1(object parameter, ConnectionEvent CE) 
     { 
      FrmReference.MyRichTextBox.AppendText(DateTime.Now + "....x...."); 
     } 

     private static void Handler2(object parameter, DataEvent DE) 
     { 
      FrmReference.MyRichTextBox.AppendText(DateTime.Now + "....y...."); 
     } 

     public MyMainForm() 
     { 
      InitializeComponent(); 
      FrmReference = this; 

     } 

     private void VNToolStripButtonStart_Click(object sender, EventArgs e) 
     { 
      con = new Connection("127.0.0.1", ConParams); 
      con.SetConnectionHandler(Handler1, null); 
      con.SetDataHandler(Handler2, null); 

      MyRichTextBox.AppendText(DateTime.Now + "....abc...."); 
     } 
    } 
+1

あなたのハンドラが呼び出されていることを確認しましたか? –

+0

Handler1とHandler2はどこから電話していますか?あなたのコードには表示されていません –

+0

あなたのメソッドにこの_static_ choiceの背後にある理由は何ですか? – Steve

答えて

1

ハンドラは呼び出されません。

あなたはこのような何かをしようとすると、問題がRichTextBoxに書くべき静的メソッドではないことをが表示されます:

public partial class Form1 : Form 
{ 
    private static Form1 frmReference; 

    private static void WriteToMyRichTextBox(string what) 
    { 
     frmReference.richTextBox1.AppendText(what); 
     frmReference.richTextBox1.AppendText(Environment.NewLine); 
    } 

    public Form1() 
    { 
     InitializeComponent(); 
     frmReference = this; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     WriteToMyRichTextBox(DateTime.Now.ToString()); 
    } 
} 
+0

ハンドラが呼び出されています。更新された質問を参照してください。この問題は、非同期呼び出しの速度(ほぼ1秒未満)、またはこれらすべての操作に対するRichTextBoxコントロールのアクセシビリティのように見えます。 – Varun

+0

@Varun他のスレッドから呼び出されていますか? –

+0

@Varunハンドラの中に 'Console.WriteLine($" {DateTime.Now.ToString()}:Handler "というハンドラを入れて、結果を表示してみてください –

関連する問題