タイトル : Re: Form(Class)をPublic変数に代入したい 投稿日 : 2010/11/03(Wed) 23:39 投稿者 : shu
> Dim Frm as ?????? ← フォーム(Class)の宣言????? ??????をFormとすればとりあえず解決しそうな気がしますが、 Interfaceを定義するこを奨めます。 Public Class Form_xx Implements IForm Private m_Pict_box() As PictureBox Private m_Pict_btn() As Button Private m_strFileNames() As String Public Sub New() ' この呼び出しはデザイナーで必要です。 InitializeComponent() ' InitializeComponent() 呼び出しの後で初期化を追加します。 m_Pict_box = New PictureBox() {PictureBox1, PictureBox2, PictureBox3, ....} m_Pict_btn= New Button() {Button1, Button2, Button3, ....} m_strFileNames = New FileNames() {......} MJ_Load(Me) 'モジュールでの処理へ End Sub Public ReadOnly Property Pict_box As System.Windows.Forms.PictureBox() Implements IForm.Pict_box Get Return m_Pict_box End Get End Property Public ReadOnly Property Pict_btn As System.Windows.Forms.Button() Implements IForm.Pict_btn Get Return m_Pict_btn End Get End Property Public Property FileNames(ByVal Index As Integer) As String Implements IForm.FileNames Get Return m_strFileNames(Index) End Get Set(ByVal value As String) m_strFileNames(Index) = value End Set End Property End Class Module Module1 Public Sub MJ_Load(ByVal fm As IForm) For i As Integer = 0 To fm.Pict_btn.Length - 1 fm.Pict_btn(i).Parent = fm.Pict_box(i) 'ボタンの親を設定 fm.Pict_btn(i).Top = fm.Pict_btn(i).Top - fm.Pict_box(i) fm.Pict_btn(i).Left = fm.Pict_btn(i).Left - fm.Pict_box(i) fm.Pict_btn(i).Tag = i AddHandler fm.Pict_btn(i).Click, AddressOf pict_btn_Click Next End Sub 'フォームのボタンが押されたときの処理 Public Sub pict_btn_Click(ByVal sender As Object, ByVal e As EventArgs) Dim btn As Button = CType(sender, System.Windows.Forms.Button) Dim i As Integer = CInt(btn.Tag.ToString) Dim fm As IForm = DirectCast(btn.FindForm, IForm) fm.Pict_box(i).Image = Image.FromFile(fm.FileNames(i)) ※<< この部分の呼ばれたフォームを取得したい(知りたい) >>※ End Sub End Module Public Interface IForm ReadOnly Property Pict_box As PictureBox() ReadOnly Property Pict_btn As Button() Property FileNames(ByVal Index As Integer) As String End Interface こんな感じでしょうか。実行はしていません。 |