簡體   English   中英

將代碼行從VB轉換為C#

[英]Converting line of code from VB to C#

我正在嘗試將代碼塊從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中起作用的某些內容?

您應該可以將其用作您的C#代碼:

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

在您的示例中,您嘗試將Form ToolStripToolStrip ,但這是行不通的。

如果您嘗試以ac#格式檢索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"];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM