2016-11-08 7 views
0

私はイベントが宣言されたパブリッククラスを持っています。私はメインクラスのイベントをサポートされた形式で提起します。

また、モーダルフォームを示す手順があります。

フォームにはボタンがあり、クリックするとメインイベントを発生させます。これを達成する方法は?例えば

Public class MyClass 

Public Event MyEvent(arg as date) 

Public Sub ShowForm() 

using frm as new frmMyForm 
frm.showDialog() 
End Using 

.... 
End Class 

フォーム上のボタンクリックイベントは

RaiseEvent MyClass.MyEvent(Today) 

私は、プロパティとしてクラスのegzemplarに合格したが、何も助けません。

+1

あなたの事は一種の裏返しです。フォームを表示するクラスがありますが、クラスに代わってフォームにイベントを表示させたいのですか?最初にフォームにクラスへの参照が必要な場合は、フォームにメソッドを追加して、何か起こったことをクラスに伝えます。クラスRaiseEvent – Plutonix

+0

@Plutonixフォームは、クラスと同じプロジェクトにあるので、私は事を参照する必要はありません。私はフォームからクラスへの参照を作成する方法を知らない。私は以前にそれをしなかった。私はクラスegzamparをプロパティとして渡し、そのメソッドを使用しています。 – GGSoft

+0

私たちは与えられたコードだけで行くことができます - 'egzemplar'のためのものはありません。示されたコードでは、フォームオブジェクト 'frmMyForm'は作成して示したクラスについての知識がなく、 – Plutonix

答えて

0

私は問題を解決しました。私は実際に日付パラメータを持つメインクラスのメソッドを作成しました。ボタンのクリックで私は上記の引数を渡したegzemplarのメソッドを呼び出しています。そして、クラスでイベントを起こす。今はうまくいく。

私の状況では、コードはもっと難しいので、代わりに単純な例を示します。

Public class MyClass 

Public Event MyEvent(arg as date) 

Public sub FromOtherPlanet(dt as Date) 
RaiseEvent MyEvent(dt) 
End sub 


Public Sub ShowForm() 
    using frm as new frmMyForm 
    frm.Egz = Me 
    frm.showDialog() 
    End Using 
End Sub 
.... 
End Class 
形で

Public class MyForm 

    dim Temp_Egz as MyClass 

    public property Egz as Myclass 
    Get 
    ....... 
    Set 
    .... 
    End Property 


    private sub button1_click..... 
    egz.FromOtherPlanet(today) 
    end sub 

    end class 
+0

MyFormクラスのコンストラクタに 'Public Sub New(egz As Myclass)'を渡すほうが良いでしょう。 – LarsTech

関連する問題