Updating a Gauge and Detecting a User Interrupt

Take the following steps to start a project and to add some code that updates a gauge during processing and detects a user interrupt:

  1. Start Visual Studio.
  2. Choose File->New->Project… from the menu.
  3. In the New Project dialog box, choose either "Visual C# Projects" or "VB Projects" in the Projects Type List, and choose "Windows Application " in the Templates List.
  4. Type the project name as "Updating a Guage and Detecting User Interrupt" in the Project Name field, and then click OK. If desired, type a new location for your project or select a directory using the Browse button, and then click OK .
  5. In the "Solution Explorer" window, right-click on the "References" folder, and select "Add Reference…" from the context menu. In the "Add Reference" dialog box, select the ".NET" tab and browse to the "<LEADTOOLS_INSTALLDIR>\Bin\DotNet4\Win32 " folder and select the following DLLs:

    • Leadtools.dll
    • Leadtools.Codecs.dll
    • Leadtools.Codecs.Cmp.dll
    • Leadtools.Controls.WinForms.dll
    • Leadtools.ImageProcessing.Core.dll

    Click the Select button and then press the OK button to add the above DLLs to the application.

  6. Make sure Form1 is in design view. Go to the toolbox (View->Toolbox) and Drag and drop an instance of ImageViewer to the form. If you do not have ImageViewer in your toolbox, select Tools->Add Remove Toolbox Items from the menu. Click Browse, select Leadtools.Controls.WinForms.DLL from the "C:\LEADTOOLS 20\Bin\DotNet4\Win32" folder, click Open, and then click OK.

  7. From the toolbox (View->Toolbox), add a ProgressBar, a Button (Text = "Median") and and another Button (Text = "Cancel").
  8. Switch to Form1 code view (right-click Form1 in the solution explorer then select View Code ) and add the following lines at the beginning of the file:

    VB
    Imports Leadtools 
    Imports Leadtools.Codecs 
    Imports Leadtools.Controls.WinForms 
    Imports Leadtools.ImageProcessing 
    Imports Leadtools.ImageProcessing.Core 
    C#
    using Leadtools; 
    using Leadtools.Codecs; 
    using Leadtools.Controls.WinForms; 
    using Leadtools.ImageProcessing; 
    using Leadtools.ImageProcessing.Core; 

  9. Add an event handler to the Form1 Load event and add the following code:

    VB
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
       ' load an image into our viewer 
       Dim codecs As New RasterCodecs() 
       rasterImageViewer1.Image = codecs.Load("C:\Users\Public\Documents\LEADTOOLS Images\Image3.cmp") 
                        
       ' disable the cancel button for now 
       Button2.Enabled = False 
    End Sub 
    C#
    private void Form1_Load(object sender, System.EventArgs e) 
    { 
       // load an image into our viewer 
       RasterCodecs codecs = new RasterCodecs(); 
       rasterImageViewer1.Image = codecs.Load(@"C:\Users\Public\Documents\LEADTOOLS Images\Image3.cmp"); 
                        
       // disable the cancel button for now 
       button2.Enabled = false; 
    } 

  10. Double-click the "median" button on the form to add the event handler for it and add the following code:

    VB
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
       canceled = False 
       ProgressBar1.Value = 0 
                        
       ' disable the median button and enable the cancel button 
       Button1.Enabled = False 
       Button2.Enabled = True 
                        
       Dim command As New MedianCommand(40) 
                        
       ' subscribe to the progress event 
       AddHandler command.Progress, AddressOf median_Progress 
                        
       ' run the median command 
       command.Run(RasterImageViewer1.Image) 
                        
       ' enable the median button and disable the cancel button 
       Button1.Enabled = True 
       Button2.Enabled = False 
       ProgressBar1.Value = 0 
    End Sub 
    C#
    private void button1_Click(object sender, System.EventArgs e) 
    { 
       canceled = false; 
       progressBar1.Value = 0; 
                        
       // disable the median button and enable the cancel button 
       button1.Enabled = false; 
       button2.Enabled = true; 
                        
       MedianCommand command = new MedianCommand(40); 
                        
       // subscribe to the progress event 
       command.Progress += new EventHandler<RasterCommandProgressEventArgs>(median_Progress); 
                        
       // run the median command 
       command.Run(rasterImageViewer1.Image); 
                        
       // enable the median button and disable the cancel button 
       button1.Enabled = true; 
       button2.Enabled = false; 
       progressBar1.Value = 0; 
    } 

  11. Double-click the "cancel" button on the form to add the event handler for it and add the following code:

    VB
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
       ' Cancel the median command 
       canceled = True 
    End Sub 
    C#
    private void button2_Click(object sender, System.EventArgs e) 
    { 
       // Cancel the median command 
       canceled = true; 
    } 

  12. Add the below code to the Form1 class:

    VB
    Private canceled As Boolean 
    Private Sub median_Progress(ByVal sender As System.Object, ByVal e As RasterCommandProgressEventArgs) 
       ' update the value of the progress bar 
       ProgressBar1.Value = e.Percent 
                        
       ' determine whether the cancel button has been pressed 
       If (canceled) Then 
          e.Cancel = True 
       End If 
                        
       Application.DoEvents() 
    End Sub 
    C#
    private bool canceled; 
    private void median_Progress(object sender, RasterCommandProgressEventArgs e) 
    { 
       // update the value of the progress bar 
       progressBar1.Value = e.Percent; 
                        
       // determine whether the cancel button has been pressed 
       if(canceled) 
          e.Cancel = true; 
                        
       Application.DoEvents(); 
    } 

  13. Build, and Run the program to test it.
Help Version 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Imaging, Medical, and Document