Chilkat Event Callbacks in VB.NET (.NET Core)

Here’s a VB .NET Core example using the Chilkat .NET Core assembly to create a Zip archive with support for the following event callbacks:

  • PercentDone — to track zip creation progress
  • AbortCheck — to allow canceling the operation
  • ProgressInfo — to monitor additional info

While this example focuses on callbacks for creating a .zip, the same method applies to other Chilkat .NET Core classes like Http, Ftp2, MailMan, and Rest.


Important: Event callbacks differ between .NET Core and .NET Framework.

See Chilkat VB.NET Event Callbacks in .NET Framework


NuGet Logo

NuGet Package

Chilkat .NET Core

View on NuGet

Imports Chilkat

Public Class Form1

    Dim WithEvents zip As New Chilkat.Zip

    Private Sub handleAbortCheck(ByRef abort As Boolean)
        Application.DoEvents()
        abort = CheckBox1.Checked
    End Sub

    Private Sub handlePercentDone(pctDone As Integer, ByRef abort As Boolean)
        ProgressBar1.Value = pctDone
        Application.DoEvents()
        abort = CheckBox1.Checked
    End Sub

    Private Sub handleProgressInfo(name As String, value As String)
        Debug.WriteLine($"[ProgressInfo] {name}: {value}")
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim glob As New Chilkat.Global
        Dim success As Boolean = glob.UnlockBundle("YOUR_CHILKAT_UNLOCK_CODE")

        ' Add event callbacks
        zip.setAbortCheckCb(AddressOf handleAbortCheck)
        zip.setPercentDoneCb(AddressOf handlePercentDone)
        zip.setProgressInfoCb(AddressOf handleProgressInfo)
        
		' AbortCheck callbacks are called every 250 milliseconds.
		' (A PercentDone callback counts as an AbortCheck.)
		sftp.HeartbeatMs = 250

        Dim zipPath As String = "c:/temp/myFiles.zip"

        ' Initialize the zip object, which also sets the FileName property to the path of the zip to be created.
        Zip.NewZip(zipPath)

        ' Append references to files to be zipped.
        Dim recurse As Boolean = True
        success = Zip.AppendFiles("c:/workarea/*.*", recurse)
        If (success = False) Then
            Debug.WriteLine(Zip.LastErrorText)
            Exit Sub
        End If

        ' Write the .zip and close the zip file (and clears the zip object).
        success = Zip.WriteZipAndClose()
        If (success = False) Then
            Debug.WriteLine(Zip.LastErrorText)
            Exit Sub
        End If

        Debug.WriteLine("Successfully created " & zipPath)
    End Sub
End Class

Chilkat Articles