将委托从c#转换为vb.net

时间:2011-08-03 15:29:30

标签: vb.net delegates

我在将C#委托转换为VB.NET时遇到了麻烦。

如何做到这一点?

    public MainForm()
    {
        InitializeComponent();

        _twain = new Twain(new WinFormsWindowMessageHook(this));
        _twain.TransferImage += delegate(Object sender, TransferImageEventArgs args)
        {
            if (args.Image != null)
            {
                pictureBox1.Image = args.Image;

                widthLabel.Text = "Width: " + pictureBox1.Image.Width;
                heightLabel.Text = "Height: " + pictureBox1.Image.Height;
            }
        };
        _twain.ScanningComplete += delegate
        {
            Enabled = true;
        };
    }

1 个答案:

答案 0 :(得分:4)

这些方法似乎都没有在构造函数本身中使用任何上下文,所以我会将每个匿名方法转换为VB代码中的“普通”方法(应该很简单),然后在构造函数中使用这样的方法:

AddHandler _twain.TransferImage, AddressOf(TransferImageHandler)
AddHandler _twain.ScanningComplete, AddressOf(ScanningCompleteHandler)

这些方法应该与他们正在处理的事件具有相同的签名。