注:シリーズの一部:C#: Accessing form members from another classおよびHow to access form objects from another cs file in C#。C#の別のスレッドから呼び出したクラスメンバーへのアクセス
こんにちは、
アイデアは、パケットがTCPクライアントに送信/受信されたときにメモを使用してユーザに通知することです。
は修正のカップルの後、最適なソリューションは、コードがあるため安全でないスレッドの、例外をスロー呼び出して、それはしかしvar form = Form.ActiveForm as Form1;
if(form != null)
form.TextValue = "Test asdasd";
と呼ばれています方法です。この1
public string TextValue
{
set
{
this.Memo.Text += value + "\n";
}
}
ように見えました私はmsdnに解決策を見つけましたが、私は彼らがそこで使った方法を得ることができません。
これは私のリメイクで、動作しません。
private void SetTextMemo(string txt)
{
if(this.Memo.InvokeRequired)
{
this.Invoke(SetTextMemo,txt); //error here
}
else
{
this.Memo.Text += txt + "\n";
}
}
エラー:
引数 '1': 'System.Delegate'
引数 'メソッドグループ' から変換することはできません '2': '文字列' へ変換することができないオブジェクト」に[ ] '
基本的に、私はInvoke.Iを使って別のスレッドからメモにアクセスしようとしています(またはメモにテキストを追加する)、私は間違いを誤解しています。
イベントの使用はどうですか? – bytebender