C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: C# マルチスレッド invokeについて


(過去ログ 127 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■75771 / inTopicNo.1)  C# マルチスレッド invokeについて
  
□投稿者/ ぽん吉 (27回)-(2015/05/01(Fri) 00:59:32)

分類:[C#] 

マルチスレッドにてベツスレッドからフォームにあるコントロールを操作したいのですが、

void SetFocus()
{
if (InvokeRequired)
{
// 別スレッドから呼び出された場合
Invoke(new SetFocusDelegate(SetFocus));
return;
}
listBox1.Focus();
}

void worker()
{
SetFocus();
}

これを表記しても
int num11 = int.Parse(listBox1.Text);
ここの部分でエラーがかかってしまいます。
どうすればいいでしょうか?

引用返信 編集キー/
■75773 / inTopicNo.2)  Re[1]: C# マルチスレッド invokeについて
□投稿者/ Azulean (471回)-(2015/05/01(Fri) 02:27:23)
No75771 (ぽん吉 さん) に返信
> これを表記しても
> int num11 = int.Parse(listBox1.Text);
> ここの部分でエラーがかかってしまいます。
> どうすればいいでしょうか?

提示されたコード中に問題の一文は存在していませんが、どういうことでしょうか。

基本的にコントロールに対して操作する(メソッドを呼ぶ、プロパティを設定する)、コントロールから値を取得する(プロパティから値を得る)行為は Invoke 先で処理する必要があります。
Focus を与えるコードを呼べば、後は大丈夫と勘違いされていないでしょうか。
引用返信 編集キー/
■75794 / inTopicNo.3)  Re[2]: C# マルチスレッド invokeについて
□投稿者/ ぽん吉 (28回)-(2015/05/01(Fri) 22:45:26)
解決しました。
解決済み
引用返信 編集キー/
■75796 / inTopicNo.4)  Re[3]: C# マルチスレッド invokeについて
□投稿者/ WebSurfer (564回)-(2015/05/01(Fri) 23:08:03)
No75794 (ぽん吉 さん) に返信
> 解決しました。

どのように解決したのか書きませんか。回答をもらった方に失礼では?
引用返信 編集キー/
■75797 / inTopicNo.5)  Re[4]: C# マルチスレッド invokeについて
□投稿者/ ぽん吉 (30回)-(2015/05/02(Sat) 10:04:21)
Invoke 先に処理を入れたら動きました。

ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -