初歩的ですみませんが...
以下のコードでForm1から、モジュール「UI」の「StatusBar_control」ステーメントを呼び出して
Form1の「StatusBar1」を変更させたいのですが実行しても変化が起こりません。
(スコープ?インスタンス? もぉー→分け解からんです T_T;)
どの様にすれば宜しいでしょうか?お願いします。
Public Class Form1
Inherits System.Windows.Forms.Form
WINDOWSフォームデザイナで生成されたコード
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call UI.StatusBar_control("disconnected")
End Sub
End Class
Module UI
Dim F1 As New Form1
'■■■■■■■■■StatusBar_control■■■■■■■■■■■■■■
Sub StatusBar_control(ByVal x As String)
Select Case x
Case "disconnected"
F1.StatusBar1.Panels(0).Text = "disconnected"
F1.StatusBar1.Panels(1).Text = "000.000.000.000"
Case "connected"
F1.StatusBar1.Panels(0).Text = "connected"
F1.StatusBar1.Panels(1).Text = "000.000.000.000"
End Select
End Sub
End Module
要するにForm1のStatusBarを他のフォームからコントロールしたいのですか。
>Module UI
> Dim F1 As New Form1
これは新しいForm1のインスタンスを作成しています、ただいShowが無いので
見えない。(^^;
Module UI
Public F1 As Form1 'Form1をグローバルで宣言
End Module
Dim statusBar1 As New StatusBar
Dim panels(1) As StatusBarPanel
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim n As Short
F1 = Me 'Form1のインスタンスを入れる
For n = 0 To 1
panels(n) = New StatusBarPanel
statusBar1.Panels.Add(panels(n))
Next
statusBar1.ShowPanels = True
StatusBar_control("disconnected")
Me.Controls.Add(statusBar1)
End Sub
こうして置けば後は
F1.StatusBar_control()でどこからでも呼べます。
返信ありがとうございます^^
>Dim statusBar1 As New StatusBar
>Dim panels(1) As StatusBarPanel
ちょっとこのあたりの意味が分からなかったので、以下のコードで実行すると
見事にForm1のステータスバーに「disconnected 000.000.000.000」が表示されました^^
ねろ様thxです。
Module UI
Public F1 As Form1 'Form1をグローバルで宣言
・
・
・
End Module
Public Class Form1
Inherits System.Windows.Forms.Form
WINDOWSフォームデザイナで生成されたコード
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
F1 = me
Call UI.StatusBar_control("disconnected")
End Sub
End Class
ツイート | ![]() |