タイトル : Re^2: 実行時に選択決定されるForm上のPublic メソッド 投稿日 : 2007/08/01(Wed) 10:15 投稿者 : ひでと
昨日留守にしてゆりましてお礼できませんでした。ありがとうございます。 > > fom.Buttun_Click() 'ここができない > この場合、Buttun_Click() がコーディングされているのは > System.Windows.Forms.Form クラスではなく、Form2 クラスおよび > Form3 クラスです。当然、コンパイルできません。 ここまでは理解できます。 > > 解決法としては、 > 案1. Buttun_Click() がコーディングされた基底クラスを作って > Form2 および Form3 が継承する。 > > 案2.共通のインターフェース(Interface)を Form2 および Form3 に実装する。 > > 案3.共通処理にしない。 > Select Case TextBox1.Text > Case "0" : Form2.Buttun_Click() > Case "1" : Form3.Buttun_Click() > End Select > # ま、このままだと TextBox1.Text の値を途中で変更されると不都合が > # 起こりますが。。。それは別の問題なので。 案3ですが、実際は60の別のFormを呼び出さないといけない為、できるだけ避けたいと考えています。 第1案ですが、正直良く理解できておりません。 Public Class myForm Public Sub Button_Click() End Sub End Class のように新しいクラスを作り、Form2,Form3でそれをInheritsする Public Class Form2 Inherits myForm Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Buttun_Click() End Sub Public Sub Buttun_Click() '処理 End Sub End Class ということでしょうか? この場合 Inherits myForm でコンパイルエラーがでます。 また、 Dim fom As New Form Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Select Case TextBox1.Text Case "0" : fom = Form2 Case "1" : fom = Form3 End Select fom.ShowDialog() End Sub Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click fom.Buttun_Click() 'ここができない End Sub End Class の中のfom.Buttun_Click() はできないと思います。 もう少し アドバイスをお願いします。 |