DOBON.NET DOBON.NETプログラミング掲示板過去ログ

formを動的に指定するには?

環境/言語:[Windows XP,7、VB.NET、NET Framework 4.0]
分類:[.NET]

DataGridViewの表示項目を変更するFormを作成し
色々なFormから共通でしたいと考えています。

【構成】
設定用Form(frm設定_表示項目)
呼び出し元 (Form1,Form2)

Public Class frm設定_表示項目
Public Shared strGamen As String

Private Sub frm設定_表示項目_設定_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
With strGamen
.DbLoadSetting()
.Enabled = True
End With
End Sub
End Class

[Form1]
Public Class Form1
Private Sub Btn設定_表示項目_Click(sender As System.Object, e As System.EventArgs) Handles Btn設定_表示項目.Click
Me.Enabled = False
frm設定_表示項目.strGamen = "Form1"
frm設定_表示項目.Show()
End Sub
End Class

[Form2]
Public Class Form2
Private Sub Btn設定_表示項目_Click(sender As System.Object, e As System.EventArgs) Handles Btn設定_表示項目.Click
Me.Enabled = False
frm設定_表示項目.strGamen = "Form2"
frm設定_表示項目.Show()
End Sub
End Class

のようにしたいのですが、どのようにすればよいでしょうか。
よろしくお願いいたします。
■No30228に返信(ルナさんの記事)

Interfaceを用意すると実装しやすいです。

Public Class frm設定_表示項目
    Public Gamen As IFormSetting

    Private Sub frm設定_表示項目_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        With Gamen
            .DbLoadSetting()
            .Enabled = True
        End With
    End Sub
End Class

Public Interface IFormSetting
    Sub DbLoadSetting()
    Property Enabled As Boolean
End Interface



Form1,Form2:
Public Class Form1
    Implements IFormSetting

    Private Sub Btn設定_表示項目_Click(sender As System.Object, e As System.EventArgs) Handles Btn設定_表示項目.Click
        Me.Enabled = False
        frm設定_表示項目.Gamen = Me
        frm設定_表示項目.Show()
    End Sub

    Public Sub DbLoadSetting() Implements IFormSetting.DbLoadSetting

    End Sub

    Public Property Enabled1 As Boolean Implements IFormSetting.Enabled
        Get
            Return Me.Enabled
        End Get
        Set(value As Boolean)
            Me.Enabled = value
        End Set
    End Property
End Class
shu様

> Interfaceを用意すると実装しやすいです。
うまくできました。これは便利ですね。
色々と活用したいと思います。

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板