2

私は既存の VB6 アプリケーションを持っていますが、そのコードを徐々に DotNet に移行しています。多くの場合、これは DotNet ユーザー コントロールを使用し、Interop Forms Toolkit v2 を使用して VB6 フォームでホストする必要があることを意味します。

現在の方法は、C# でユーザー コントロールを開発し、C# バージョンから継承した VB.NET ユーザー コントロールを作成し、VB.NET コントロールを VB6 形式でホストすることです。

私が苦労している唯一の部分は、フォーカスを取得する次のコントロールが Dotnet ユーザーコントロールの外にあるときに、テキストボックスで Leave または Validated イベントをキャプチャしようとすることです。イベントが発生しないか、ハンドラが実行されません。

誰かがこの問題を解決しましたか、それとも何か不足していますか?

4

1 に答える 1

3

まず、Interop Forms Toolkit で VB.NET を使用する必要はなく、C# コードを直接使用できます。

次の 2 つの CodeProject 記事をご覧ください。

2 番目の記事にはActiveXControlHelpersというクラスがあります。そこを見ると、VB 6.0 から .NET にイベントが流れるように UserControl を接続する方法がわかります。たとえば、VB 6.0 で .NET コントロールにタブ移動する場合、VB 6.0 の世界の次のコントロールではなく、そのコントロールのすべてのコンポーネントをタブ移動する必要があります。

それがどのように行われるかを見れば、あなたの問題をいくらか前進させることができるはずです.

于 2009-09-28T09:20:28.647 に答える