Take the following steps to start a project and to add some code
that updates a gauge during processing and detects a user interrupt:
Start Visual Studio .NET. Choose File->New->Project… from the menu. In the New Project dialog box, choose either "Visual C# Projects" or "Visual Basic Projects" in the Projects Type List, and choose "Windows Application " in the Templates List. Type the project name as "Updating a Guage and Detecting User Interrupt" in the Project Name field, and then choose OK. If desired, type a new location for your project or select a directory using the Browse button, and then choose OK . 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 Leadtools For .NET "\LEAD Technologies\LEADTOOLS 16.5\Bin\DotNet\Win32 " folder and select the following DLLs: Leadtools.dll Leadtools.Codecs.dll Leadtools.WinForms.dll Leadtools.ImageProcessing.Core.dll
Make sure Form1 is in design view. Go to the toolbox (View->Toolbox) and Drag and drop an instance of RasterImageViewer to the form. If you do not have RasterImageViewer in your toolbox, select Tools->Add Remove Toolbox Items from the menu. Click Browse and then select Leadtools.WinForms.DLL from "C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 16.5\Bin\DotNet\Win32" and then click Open and then click OK. From the toolbox (View->Toolbox), add a ProgressBar, a Button (Text = "Median") and and another Button (Text = "Cancel"). 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: [Visual Basic]
[C#]Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.WinForms Imports Leadtools.ImageProcessing Imports Leadtools.ImageProcessing.Core
using Leadtools; using Leadtools.Codecs; using Leadtools.WinForms; using Leadtools.ImageProcessing; using Leadtools.ImageProcessing.Core;
Add an event handler to the Form1 Load event and add the following code: [Visual Basic]
[C#]Private canceled As Boolean Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' load an image into our viewer RasterCodecs.Startup() Dim codecs As New RasterCodecs() rasterImageViewer1.Image = codecs.Load("C:\Users\Public\Documents\LEADTOOLS Images\Image3.cmp") RasterCodecs.Shutdown() ' disable the cancel button for now Button2.Enabled = False End Sub
private bool canceled; private void Form1_Load(object sender, System.EventArgs e) { // load an image into our viewer RasterCodecs.Startup(); RasterCodecs codecs = new RasterCodecs(); rasterImageViewer1.Image = codecs.Load(@"C:\Users\Public\Documents\LEADTOOLS Images\Image3.cmp"); RasterCodecs.Shutdown(); // disable the cancel button for now button2.Enabled = false; }
double-click the button1 Button (Median button) on the form to add the event handler for it and add the following code: [Visual Basic]
[C#]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 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
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; } 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(); }
double-click the button2 Button (Cancel button) on the form to add the event handler for it and add the following code: [Visual Basic]
[C#]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
private void button2_Click(object sender, System.EventArgs e) { // Cancel the median command canceled = true; }
Build, and Run the program to test it.