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 click OK. If desired, type a new location for your project or select a directory using the Browse button, and then click 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 the "<LEADTOOLS_INSTALLDIR>\Bin\DotNet\Win32 " folder and select the following DLLs:
- Leadtools.dll
- Leadtools.Codecs.dll
- Leadtools.Codecs.Cmp.dll
- Leadtools.WinForms.dll
- Leadtools.ImageProcessing.Core.dll
Click the Select button and then press the OK button to add the above DLLs to the application.
- 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, select Leadtools.WinForms.DLL from the "C:\LEADTOOLS 17.5\Bin\DotNet\Win32" folder, 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]
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.WinForms
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Core
[C#]
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]
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;
}
- Double-click the "median" button on the form to add the event handler for it and add the following code:
[Visual Basic]
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;
}
- Double-click the "cancel" button on the form to add the event handler for it and add the following code: [Visual Basic]
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;
}
- Add the below code to the Form1 class: [Visual Basic]
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();
}
- Build, and Run the program to test it.