如何将C#.NET自定义事件转换为VB .NET [英] How do I convert a C# .NET custom event to VB .NET

查看:92
本文介绍了如何将C#.NET自定义事件转换为VB .NET的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试开发一个VB .NET Windows窗体应用程序FTP客户端,该客户端使用从代码项目文章"Windows FTP客户端"中获得的C#.NET FTPLibrary.dll.我还将转换并使用本文中的大量代码,在大多数情况下,我已经能够使用Developer Fusion的C#到VB代码转换器成功地转换为VB .NET. dll有一个新的消息处理程序(NewMessageHandler),该消息处理程序用于本文的主要形式(frmMain). frmMain的SetFtpClient()方法中有一个C#.NET语句,我无法将其转换为VB .NET.我已使用"====="语句将需要转换为VB .NET的语句装箱.我为这个问题烦恼.我将衷心感谢您为解决问题提供的帮助.我从下面的dll和frmMain中包含了相关的代码.

C#.NET FTPLibrary.dll代码:

I am trying to develop a VB .NET Windows Form Application FTP client that uses the C# .NET FTPLibrary.dll that I obtained from The Code Project article "A Windows FTP Client". I am also converting and using significant amount of the code from the article which, for the most part, I have been able to successfully convert to VB .NET using Developer Fusion''s C# to VB code converter. The dll has a new message handler (NewMessageHandler) which is used in the article''s main form (frmMain). There is a C# .NET statement in the SetFtpClient() method of frmMain that I am unable to convert to VB .NET. I have boxed the statement I need help with converting to VB .NET with " ===== " statements. I am in over my head with this problem. I will sincerely appreciate help with Solving the problem. I have included the relevant code from the dll and from frmMain below.

C# .NET FTPLibrary.dll Code:

//New Server Message Event
public delegate void NewMessageHandler(object sender, NewMessageEventArgs e);
public event NewMessageHandler OnNewMessageReceived;


VB .NET frmMain.vb代码:


VB .NET frmMain.vb Code:

' Setup On Message Received Event
Private Sub FtpClient_OnNewMessageReceived(ByVal myObject As Object, ByVal e As NewMessageEventArgs)
Message = New ListViewItem()
Message.Text = DateTime.Now.ToLongTimeString() + " " + DateTime.Now.ToLongDateString()
Message.SubItems.Add(e.StatusType)
Message.SubItems.Add(e.StatusMessage)
Message.SubItems.Add(e.StatusCode)
Message.SubItems.Add(txtRemoteDirectory.Text)
lstMessages.Items.Add(Message)
Me.lstMessages.EnsureVisible(Me.lstMessages.Items.Count - 1)
End Sub

Public Sub SetFtpClient(ByVal client As WinFTP.Library.FTPclient)
' Set FTP client
FtpClient = client

' Display the welcome message
Message = New ListViewItem()
Message.Text = DateTime.Now.ToLongTimeString() + " " + DateTime.Now.ToLongDateString()
Message.SubItems.Add("Welcome Message")
Message.SubItems.Add(FtpClient.WelcomeMessage)
Message.SubItems.Add("No Code")
Message.SubItems.Add("/")
lstMessages.Items.Add(Message)

' =========================== C# .NET Code ============================

' Setup on message received Event
FtpClient.OnNewMessageReceived += New FTPclient.NewMessageHandler(FtpClient_OnNewMessageReceived);

' ================================================================


' Open and display root directory and files and folders in it
For Each folder As FTPfileInfo In FtpClient.ListDirectoryDetail("/")
Dim item As New ListViewItem()
item.Text = folder.Filename

If folder.FileType = FTPfileInfo.DirectoryEntryTypes.Directory Then
item.SubItems.Add("Folder")
Else
item.SubItems.Add("File")
End If

item.SubItems.Add(folder.FullName)
item.SubItems.Add(folder.Permission)
item.SubItems.Add(folder.FileDateTime.ToShortTimeString() + _
folder.FileDateTime.ToShortDateString())
item.SubItems.Add(GetFileSize(folder.Size))
lstRemoteFiles.Items.Add(item)
Next
End Sub

推荐答案

我希望我不会误解您的问题,但对于事件处理程序,+=类似于VB的 ^ ].
I hope that I have not misunderstood your question but for event handlers the += is analogous to VB''s AddHandler[^].


这篇关于如何将C#.NET自定义事件转换为VB .NET的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆