|
分類:[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に切り替えたばかりの初心者です、ご教授宜しくお願いします。
|