2011-12-19 7 views
1

私は、VB6アプリケーションを参照し、.NET GUIコンポーネントを呼び出します。 .NET GUIコンポーネントにはDataGridがあります。 VB6アプリケーションでフォームを表示させるために、データグリッドの行をダブルクリックしたいのですか?VB6アプリケーションで.NETコンポーネントの起動イベントを受け取る方法は?

これを行うにはどうすればいいですか?

+1

あなたがより多くの情報は[こちら]でVB 6の 'WithEvents'キーワードを使用してVB.NETのコンポーネントを宣言することで簡単に行うことができる必要があります(http ://stackoverflow.com/questions/851501/handling-vb-net-events-in-vb6-code)。 –

答えて

3

私はCOMオブジェクトを介して.NETオブジェクトにアクセスしていると仮定します。この場合、コントロールで通常のイベントを作成するだけで、コンシューマ(VB6)で他のコントロールイベント。

public MyNetClass { 
    public delegate void RowDoubleClickedDelegate(int Row); 

    public event RowDoubleClickedDelegate RowDoubleClicked; 

    protected void OnRowDoubleClicked(int row) { 
    if (RowDoubleClicked != null) { 
     RowDoubleClicked(row); 
    } 
    } 
} 

そして、VB6で:

Dim WithEvents NetObect As MyNetClass 

Private Sub MyNetClass_RowDoubleClicked(ByVal Row As Long) 
    MsgBox CStr(Row) & " clicked" 
End Sub 
+0

これはユーザーコントロールではなく、フォームを表示する.NET DLLです。 – CJ7

+0

そして、VB6アプリケーションはどのように.NETライブラリと対話していますか? COM interop経由でも同じことが適用されますが、Codyが示唆しているように、宣言にWithEventsを使用する必要があります。 – Deanna

+0

これはCOM interop経由です。私はまだ理解していない - 私はC#のメソッドの中にいる場合#VB6イベントを発生させるためにどのようなコードを書くのですか? – CJ7

関連する問題