掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
全体量が分からない時にプログレスバーを使うには? (ID:116830)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
たまには、プログレスバーではなく、PictureBoxで Dim sngPercen As Single Dim i As Integer Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click sngPercen = 0 For i = 0 To 1000 'なぜか原因不明でエラーも出ない症状が発生するのを '防止するため、DoEventsを挟んでいる。 Application.DoEvents() '変数sngPercenに値を入れています。この変数はメータを動かす数字を入れています。 sngPercen = i / 1000 If sngPercen >= 1 Then 'Set_Picbar(コントロール名(ProgressBarの代わりっと記載した方が分かりやすいかな? _ ', 初期値(最初からパーセンテージを埋める数値<範囲:0(Min)〜1(Max)>), _ '塗りつぶす色を指定 _ 'True←これ何だっけ? 自分で組んだのに忘れちゃった。とりあえず、Trueで) Set_Picbar(PictureBox1, 1, Brushes.Blue, True) MessageBox.Show("完了です", "メッセージ") Exit Sub Else Set_Picbar(PictureBox1, sngPercen, Brushes.Blue, True) End If Next End Sub Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load 'Set_Picbar(コントロール名(ProgressBarの代わりっと記載した方が分かりやすいかな? _ ', 初期値(最初からパーセンテージを埋める数値<範囲:0(Min)〜1(Max)>), _ '塗りつぶす色を指定 _ 'True←これ何だっけ? 自分で組んだのに忘れちゃった。とりあえず、Trueで) Set_Picbar(PictureBox1, 0, Brushes.Blue, True) End Sub 'パーセントでピクチャボックスを塗ります Sub Set_Picbar(ByVal pic As PictureBox, _ ByVal sngPercent As Single, _ ByVal ForeColor As Brush, _ 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.ForeColor, objRectangle) g.FillRectangle(ForeColor, objRectangle) 'パーセントを白色で印字しています intX = pic.Width / 2 intY = pic.Height / 2 g.DrawString(strPercent, _ Me.Font, Brushes.White, intX, intY) '開放 g.Dispose() End Sub をやってみるのも面白いかも?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.