[.NET]モジュールからForm1を参照 ??

解決


Bifis  2003-12-11 14:30:26  No: 110609

初歩的ですみませんが...
以下のコードで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


ねろ  URL  2003-12-11 17:47:58  No: 110610

要するに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()でどこからでも呼べます。


Bifis  2003-12-12 04:37:07  No: 110611

返信ありがとうございます^^
>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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加