2011-04-12 50 views
5

我有一個C#和VB.NET解決方案。我需要使用vb表單中的c#表單作爲選項卡。我怎樣才能做到這一點?C#和VB中的C#

+1

也許這將有助於:http://stackoverflow.com/questions/1278024/mixing-c-vb-in-the-same-project – Roger 2011-04-12 04:47:32

+0

什麼是「C#窗體內的VB形式作爲選項卡」? – BoltClock 2011-04-12 04:47:35

+0

我的意思是說,我需要使用C#表單的內容作爲VB中的選項卡.net – Vicky 2011-04-12 04:52:56

回答

1

我通過在C#項目中添加VB項目的.exe文件作爲參考,並調用VB項目的Form.Show()來完成此操作。

16

你可以在一個單獨的類庫或者作爲一個單獨的類庫用戶控件創建的一種形式,只需在您的應用程序中引用它即可。在解決方案中的每個項目可以是VB.Net或C#,所以這兩種方式都可以...

在一個簡單的示例解決方案,你可以有以下項目

  • MyApp.CSharpControls - 項目C#
  • MyApp.VBControls - 項目在Vb.Net
  • MyApp.UI - 項目在C#或VB.Net它可以引用其它控制項目的任

編輯
我推定winforms?

+3

您甚至不必將其轉換爲類庫項目。 vb解決方案可以添加對c#解決方案生成的.exe的引用,並使用該c#解決方案中的任何公共類型。不過,這將有助於將c#表單轉換爲用戶控件。 – 2011-04-12 04:54:02

4

不,你不能。
我建議將c#-Form封裝到單獨的程序集中。創建一個UserControl以在其他應用程序中使用它,或者如果您需要完整的表單,請將其封裝到DLL中並導出Show/ShowDialog()方法。

+2

您可以添加對純.NET文件以及類庫dll的項目的引用,並仍然使用該exe文件中的任何公共類型。這不涉及特殊的工作,它仍然只是一個組裝。 – 2011-04-12 04:55:59

+4

當然這是可能的,但我試圖阻止(或不喜歡)從exe文件實例化公共類。這是一個建議,而不是「什麼是可能的」。句子'不,'你不能'在一個解決方案中引用c#和vb的混合。 – Markus 2011-04-12 05:01:13

+0

你是指項目嗎? – davidsleeps 2011-04-12 05:11:37