Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从VB到C的代码行转换#_C#_Vb.net_Ctype - Fatal编程技术网

C# 从VB到C的代码行转换#

C# 从VB到C的代码行转换#,c#,vb.net,ctype,C#,Vb.net,Ctype,我试图将一段代码从VB转换成C,但遇到了一个问题,只需要一行代码 VB代码: Dim tsAV As System.Windows.Forms.ToolStrip = CType(objHost.FormMain.Controls("tsMain"), Windows.Forms.ToolStrip) 我在C#中的代码: 我的问题来自FormMain方法。当我使用VB代码时,我可以得到控件方法,但在C语言中我不能。我使用相同的接口DLL包括两种方式 我做错什么了吗? DLL是否可能包

我试图将一段代码从VB转换成C,但遇到了一个问题,只需要一行代码

VB代码:

Dim tsAV As System.Windows.Forms.ToolStrip = 
    CType(objHost.FormMain.Controls("tsMain"), Windows.Forms.ToolStrip)
我在C#中的代码:

我的问题来自FormMain方法。当我使用VB代码时,我可以得到控件方法,但在C语言中我不能。我使用相同的接口DLL包括两种方式

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

如果您试图以c形式检索ToolStrip,可以使用以下代码。这假设ToolStrip名称为“tsAV”,并且您是从
FormMain
中的方法执行此代码(这可能是主窗体的类名)

从表单外部,可以使用以下代码找到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"];

您应该能够将其用作C#代码:


在您的示例中,您试图将
表单
转换为
工具条
,但这不起作用。

什么是objHost?这个变量的类型是什么?什么是
FormMain
-一个类或实例?我的问题是Visual Studio在编写它时像在C#中一样对我大喊“FormMain是一个方法,不能在这个上下文中使用”。在VB中,它工作得很好。VB在方法调用中不使用括号更为宽容。C#不是,当它告诉您应该只需要在方法调用中添加括号时。我已经更新了我的帖子来反映这一点。哇,我可以发誓我试过了,哈哈,但它奏效了!非常感谢你的帮助!还在学习lol:)谢谢你的帮助!:)
using System.Windows.Forms;
...
FormMain form = new FormMain();
ToolStrip tsAV = (ToolStrip)form.Controls["tsMain"];
using System.Windows.Forms;
...
ToolStrip tsAV = (ToolStrip)objHost.FormMain.Controls["tsMain"];
// using System.Windows.Forms;
ToolStrip tsAV = (ToolStrip)objHost.FormMain().Controls["tsMain"];
                                            ^^^^^^^^^^^^^^^^^^^