| 【】Top
 
 【】VB.NET
 【】VB6.0
 
 【】メールマガジンの購読
 【】メールマガジンの解除
 
 
 
 
 
 
 【】会社概要
 
 【】お問い合わせ
 
 
 姉妹サイト「バーチャルコネクション!」はこちらです。
 
 姉妹サイト「七福神のメールでビンゴ!」はこちらです。
 
 
   
 ●24時間365日の安心をあなたにAT-LINK専用サーバ・サービスお勧めのサーバです。
 
 
 | 
 
               
                |  |  |  |   
                |  | 
   
 
   
    | 
  
        http://anetm.com/dev/d.cgi?SC=DTDTL&o=OuO 
        
  
                 
               
                 
                  | 進行状況を表示する |   
                  | 
 |   
                  | 【注意書き】 ●VB.NET を使っているものとします。
 ●動作環境は、Windows XX を使用しているとします。
 
 
 .NET でも、進行状況を表示することが可能です。
 
 
 
 この機能を使えば、簡単に、
 処理のかかる時間などの進行状況などを
 視覚効果でユーザーに伝える事が可能になってきます。
 
 
 フォームに次の様なコードを記述します
 
 
 -----------VB.NETコーディングここから-------------------
 
 
 1.フォームに、ピクチャボックスコントロール、
 ボタンコントロール、
 タイマーコントロール
 を配置します。
 下記は、デフォルトのオブジェクトの名前と配置を示しています。
 
 ┏━━━━━━━━━━━━━━━━━━┓
 ┃PictureBox1                       ┃
 ┃                                  ┃
 ┗━━━━━━━━━━━━━━━━━━┛
 ┏━━━━━━━━┓┏━━━━━━━━┓
 ┃Button1      ┃┃Button2      ┃
 ┗━━━━━━━━┛┗━━━━━━━━┛
 
 --------------------------------------------
 (フォーム外)
 ┏━━━━━━━━┓
 ┃Timer1          ┃
 ┗━━━━━━━━┛
 
 
 2.ボタンコントロールの
 Button1 text プロパティに「開始」と記述します。
 Button2 text プロパティに「停止」と記述します。
 
 ※説明用のためです。必須ではありません。
 
 ┏━━━━━━━━━━━━━━━━━━┓
 ┃PictureBox1                       ┃
 ┃                                  ┃
 ┗━━━━━━━━━━━━━━━━━━┛
 ┏━━━━━━━━┓┏━━━━━━━━┓
 ┃開始         ┃┃停止         ┃
 ┗━━━━━━━━┛┗━━━━━━━━┛
 
 --------------------------------------------
 (フォーム外)
 ┏━━━━━━━━┓
 ┃Timer1          ┃
 ┗━━━━━━━━┛
 
 
 
 3.フォームをダブルクリックして、
 フォームロードイベントのコード編集を開始して、
 次のコードを記述します。
 
 
 Dim sngPercen As Single   'パーセンテージ 0.00〜1.00 (0%〜100%)
 
 
 'パーセントでピクチャボックスを塗ります
 Sub Set_Picbar(ByVal pic As PictureBox, _
 ByVal sngPercent As Single, _
 Optional ByVal fBorderCase As Boolean = False)
 
 Dim g As Graphics         '描画グラフィック
 
 Dim strPercent As String  '文字列のためのパーセンテージ
 Dim intX As Integer       '文字列描画のためのX座標
 Dim intY As Integer       '文字列描画のためのY座標
 Dim intPercent            'パーセンテージの書き換え
 '塗りつぶす全体の領域です
 Dim objRectangle As New Rectangle(0, 0, _
 pic.Width * sngPercent, pic.Height)
 
 
 '塗りつぶす前の背景を灰色にしています
 pic.BackColor = System.Drawing.Color.DarkGray
 
 '描画領域とグラフィックオブジェクトの作成です
 pic.Image = New Bitmap(pic.Width, pic.Height)
 g = Graphics.FromImage(pic.Image)
 
 
 'パーセントのチェックです
 intPercent = Int(100 * sngPercent + 0.5)
 '処理が完了する前に100%にならないようにしています
 If intPercent = 0 Then
 If Not fBorderCase Then
 intPercent = 1
 End If
 ElseIf intPercent = 100 Then
 If Not fBorderCase Then
 intPercent = 99
 End If
 End If
 
 
 'パーセントの文字を形成しています
 strPercent = Format$(intPercent) & "%"
 
 
 'バーを青色で印字しています
 g.FillRectangle(Brushes.Blue, objRectangle)
 
 
 'パーセントを白色で印字しています
 intX = pic.Width / 2
 intY = pic.Height / 2
 g.DrawString(strPercent, _
 Me.Font, Brushes.White, intX, intY)
 
 '開放
 g.Dispose()
 
 
 End Sub
 
 Private Sub Timer1_Tick(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles Timer1.Tick
 
 '1%づつ最大100%までインクリメント
 sngPercen = sngPercen + 0.01
 If sngPercen >= 1 Then
 Timer1.Enabled = False
 Set_Picbar(PictureBox1, 1, True)
 MsgBox("やったぁ完了!")
 Exit Sub
 End If
 
 Set_Picbar(PictureBox1, sngPercen)
 
 End Sub
 
 Private Sub Button1_Click(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles Button1.Click
 Timer1.Enabled = True
 sngPercen = 0
 
 End Sub
 
 Private Sub Button2_Click(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles Button2.Click
 
 Timer1.Enabled = False
 MsgBox("中断しました")
 
 End Sub
 
 Private Sub Form1_Load(ByVal sender As System.Object, _
 ByVal e As System.EventArgs) Handles MyBase.Load
 Timer1.Enabled = False
 Timer1.Interval = 100
 Set_Picbar(PictureBox1, 0, True)
 
 End Sub
 
 
 4.ビルドして実行します。
 
 5.フォームに表示された
 ボタン「開始」を押します。
 
 6.パーセンテージを加算しながらバーが青色に塗りつぶされていきます
 
 
 7.そのまま放置して100%に達すると
 「やったぁ完了!」メッセージが表示されます。
 
 
 
 
 
 
 
 -----------VB.NETコーディングここまで-------------------
 
 本サンプルでは、汎用性を高めるために
 あえてプログレスバーを使用しない
 方法でそのサンプルを作成しています。
 
 本サンプルでは、 Set_Picbar サブルーチンを作成し、
 パーセンテージ(0〜1)と描画先オブジェクトのピクチャボックスを
 必須の引数で渡しています。
 
 また、省略可能な引数として fBorderCase (True or False)を設置。
 これは、万が一 進行している処理が未完のまま 切捨て、四捨五入等で
 パーセンテージが 0 または 100 になってしまう場合、
 これを回避するために用意しているフラグ変数です。
 
 通常は、開始するときと、完了したときに True 指定する以外は、
 省略(False)可能です。
 
 本サンプルでは、タイマーで処理の過程を実現しています。
 
 導入の際には、タイマー、ボタンコントロールは不要です。
 
 
 
 |  
  
             
   
 Copyright(c)2001-2004 Ai Net Makoto 記事・情報の無断転載を禁止します。  |  |  |   
                |  |  |  |  |