| 分類:[VB.NET (Windows)]
お世話になります、初めて投稿しますワンダーと申します、お願いします。
WindowsフォームにLabelコントロールとProgressBarコントロールとButtonコントロールを貼り付け、 Buttonコントロルをクリックすると1秒おきにLabelとProgressBarの内容を変え表示し、最後に値が (i=10)フルになったら、LabelコントロールとProgressBarコントロールを非表示にするプログラムです。
Public Class Form1 Inherits System.Windows.Forms.Form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ProgressBar1.Visible = False Label1.Visible = False End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer
ProgressBar1.Visible = True Label1.Visible = True ProgressBar1.Minimum = 1 ProgressBar1.Maximum = 10 For i = 1 To 10 ProgressBar1.Value = i Label1.Text = i Label1.Update() System.Threading.Thread.Sleep(1000) Next i ProgressBar1.Visible = False Label1.Visible = False End Sub End Class
上記の処理を、出来ればフォームより標準モジュールをCallするだけで、利用出来るようにしたいのです。
Public Class Form1 Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call Advance() End Sub End Class
Module Module1 Sub Advance() Dim frm As Form Dim lbl As Label Dim pbr As ProgressBar Dim i As Integer
frm = New Form frm.Text = "" frm.ClientSize = New System.Drawing.Size(368, 37) frm.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D frm.ControlBox = False frm.MaximizeBox = False frm.MinimizeBox = False
lbl = New Label lbl.Name = "Label1" lbl.Size = New System.Drawing.Size(368, 16) lbl.BackColor = System.Drawing.Color.FromArgb(CType(255, Byte), CType(192, Byte), CType(192, Byte)) lbl.Text = "Label1" frm.Controls.Add(lbl)
pbr = New ProgressBar pbr.Name = "ProgressBar1" pbr.Size = New System.Drawing.Size(368, 16) pbr.Dock = System.Windows.Forms.DockStyle.Bottom frm.Controls.Add(pbr) '===困っている場所============================================================================== frm.ShowDialog()
'pbr.Minimum = 1 'pbr.Maximum = 10 'For i = 1 To 10 ' pbr.Value = i ' lbl.Text = i ' lbl.Update() ' System.Threading.Thread.Sleep(1000) 'Next i
'frm.ShowDialog() 'frm.Close() '=============================================================================================== End Sub End Module
標準モジュールではコントロールをフォームに貼り付けるまではうまくいったのですが... frm.ShowDialog()で止まってしまいます、どの様にコードを組めばいいでしょうか、考え方がまずいの でしょうか、クラスモジュールにて考えればいいのでしょうか、困って迷ってます。
VB6.0から.NET2003に切り替えたばかりの初心者です、ご教授宜しくお願いします。
|