0

ここで初めて質問するので、間違っていたらすみません。検索しても何も見つかりませんでした。

VB.NET の従来の Windows アプリケーション プロジェクトを継承しました。新しい Windows フォームを含め、できる限りすべての新しい追加は C# でコーディングしたいと考えています。そのため、VB.NET Windows アプリケーションによって参照される C# アセンブリ (これが最善の方法かどうかはわかりません) に新しい Windows フォームがあります。参照アセンブリから C# フォームを初期化するときに、必要なすべてのパラメーターを渡します。このパラメーターから、C# Windows フォームでグリッド列とレコードを作成します。これまでのところ問題はありません。C# グリッドのセル ダブル クリック イベントで、C# アセンブリを参照するアプリケーションから既存の VB.NET Winform を表示したいと思います。私の質問は: VB.NET Windows フォームのハンドルを取得して表示するにはどうすればよいですか? 循環参照は明らかに許可されていないため、可能であればどうすればこれを達成できますか?

4

2 に答える 2

0

Form1 つの方法は、VB.NET コードからインスタンス化されている場合、一般的なフォーム作成ハンドラーを C# に渡すことです。このように、フォームは、作成して表示する必要があるフォームの正確なタイプを知る必要はありません。それが知っているのはForm、それが であることだけです。表示するだけで十分な場合は、これで十分です。

FormC#セルのダブルクリック イベントを、VB.NET コードで処理できるパブリック イベントとして公開することも検討してください。

設計上それが理にかなっている場合、3 番目のオプションは、ブリッジとして機能する 3 番目のアセンブリを使用することです。このアセンブリは、VB.NET アセンブリと C# アセンブリの両方で参照でき、これらで実装/使用されるインターフェイス タイプを保持できます。

于 2014-04-08T12:32:53.463 に答える