将代码行从VB转换为C#

时间:2014-10-04 18:54:01

标签: c# vb.net ctype

我正在尝试将一段代码从VB转换为C#,但遇到了一行代码问题。

VB代码:

Dim tsAV As System.Windows.Forms.ToolStrip = 
    CType(objHost.FormMain.Controls("tsMain"), Windows.Forms.ToolStrip)

C#中的代码:

System.Windows.Forms.ToolStrip tsAV = 
    (System.Windows.Forms.ToolStrip)objHost.FormMain;

我的问题出现在FormMain方法上。当我使用VB代码时,我可以获得Controls方法但在C#中我不能。我使用两种方式使用相同的接口DLL。

我做错了吗? DLL是否可以包含仅在VB中工作的某些内容?

2 个答案:

答案 0 :(得分:2)

您应该可以将其用作C#代码:

// using System.Windows.Forms;
ToolStrip tsAV = (ToolStrip)objHost.FormMain().Controls["tsMain"];
                                            ^^^^^^^^^^^^^^^^^^^

在您的示例中,您试图将Form转换为ToolStrip,但这不会起作用。

答案 1 :(得分:0)

如果您尝试在c#表单中检索ToolStrip,则可以使用以下代码。这假设ToolStrip名称是“tsAV”,并且您正在FormMain内的方法执行此代码(可能是主窗体的类名)。

using System.Windows.Forms;
...
ToolStrip tsAV = (ToolStrip)Controls["tsMain"];

从表单外部,您可以使用以下代码找到ToolStrip:

using System.Windows.Forms;
...
FormMain form = new FormMain();
ToolStrip tsAV = (ToolStrip)form.Controls["tsMain"];

更新:假设objHost是排序控制器,FormMain是一个字段或属性名称,它返回表单的实例,而不是类名,您可以使用以下内容:

using System.Windows.Forms;
...
ToolStrip tsAV = (ToolStrip)objHost.FormMain.Controls["tsMain"];