动态创建一个按钮并添加 EventHandler()

Create dynamically a button and add EventHandler()

我正在将 C# WinForm 应用程序迁移到 VB.Net。

在部分代码中定义了一个按钮并将事件处理程序添加到方法中。

 ToolStripButton newExportButton = new ToolStripButton();
  newExportButton = new ToolStripButton("", null, new EventHandler(ExportReport));

  private void ExportReport(Object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.DefaultExt = "pdf";
            saveFileDialog.Filter = Visor.ObtenerFiltroDeExtensiones();

            if (saveFileDialog.ShowDialog() == DialogResult.OK && Path.HasExtension(saveFileDialog.FileName))
            {
                ReportDocument reportDocument = this.VisorReporte.ReportSource as ReportDocument;               
                reportDocument.ExportToDisk(dicExtensiones[Path.GetExtension(saveFileDialog.FileName)], saveFileDialog.FileName);
            }
        }

当我尝试迁移到 Vb.Net 时,我在迁移 EventHandler 时遇到了问题。

我看过here但是它不符合我的需要。我没有定义任何特定事件,例如 (click)

我已经把那行改成了这一行

  newExportButton = New ToolStripButton("", Nothing, New EventHandler(ExportarReporte))

我有一个错误提示 AddressOf 丢失。

如何将事件处理程序附加到该按钮以调用特定方法?

谢谢

在 VB.NET 中,直接引用方法时必须使用 AddressOf operator。它用于创建相关方法的委托。

New EventHandler(...) 不是必需的,因为如果签名正确,委托将隐式转换为事件处理程序。

这应该有效:

newExportButton = New ToolStripButton("", Nothing, AddressOf ExportarReporte)