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

わんくま同盟

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

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


(過去ログ 168 を表示中)
■96953 / )  Re[1]: ProgressBarの表示をその時のみ最前面へ移動
□投稿者/ 魔界の仮面弁士 (2993回)-(2021/03/06(Sat) 11:24:55)
2021/03/06(Sat) 11:30:20 編集(投稿者)

No96952 (ゆい さん) に返信
> その時のみProgressBarの表示をChartなどの最前面へ移動をし、完了がすれば最背面へ移動もしくは表示を消したいです。

ZOrder の入替なら
 ProgressBar1.BringToFront()
 ProgressBar1.SendToBack()
です。

表示/非表示の切替なら
 ProgressBar1.Show()
 ProgressBar1.Hide()
もしくは
 ProgressBar1.Visible = booleanValue
です。

> Label1.Text = "0" & "/" & 10
Label1.Text = "0/10"
で良いのでは?

> Dim i As Integer
> For i = 1 To 10
この書き方は、VB.NET 2002 時代のものですね。現在は推奨されていません。

2003 以降なら
 For i As Integer = 1 To 10
のようにして、変数 i のスコープを For 内に制限することが望ましいです。

また、2008 以降ではローカル型の推論が使えるようになったので、上記を
 For i = 1 To 10
と省略表記することができます。2002 と違って Dim 宣言 も不要です。
この場合も 2003/2005 同様、変数 i As Integer が For 内での利用に限定されるようになります。


> '1秒間待機する(時間のかかる処理があるものとする)
> System.Threading.Thread.Sleep(1000)
メッセージ ポンプや COM の動作に影響を与えてしまう事があるため、
UI スレッドから Sleep を呼び出すことは避けるべきです。

また、時間のかかる処理がある場合は、それを別スレッドで処理することが望ましいです。
VB2012 以降であれば Asnyc / Await 、VB2005〜2010 では BackgroundWorker の利用を検討してみてください。
返信 編集キー/


管理者用

- Child Tree -