Skip to main content
Email Password   helpLost your password?

Various screen shots

Introduction

After programming in BASIC, FORTRAN, Assembly, PLI, C, and then C++ for a combined 30+ years, I finally decided to check out the 21st century and write my first meaningful application in .Net. It was going to be a variation of an personal information manager that I had put out as shareware a number of years ago. At first I was enamored with the seemingly endless amount of classes, controls and documentation, and the ease at which one could quickly develop in this new environment. However, it did not take long to realize that there were many deficiencies in the way some of the controls operated, holes in the documentation, as well as outright bugs. As I developed my new application there were many times where I just wish something worked differently.

The first small annoyance was how the progress bar painted the bar in little separate boxes instead of a smooth continuous bar and didn't incorporate a percent complete indicator. Then there was the inability to change colors in the predefined dialogs such as the PrintPreviewDialog and others. Before long I began rolling my own versions of various controls so that I felt I had more control (no pun intended) over how they worked. And, of course, I would have the source code to fix problems and enhance the controls as I had done for years when the MFC source code was freely distributed.

One of the main areas I wanted to coordinate was simply to be able to pick a color scheme for all my controls and somehow everything in the application could easily use that color scheme. Then there were the many simple little things that I wanted that were just not available in the .Net controls, such as the ability to paint a picture in a frame but still get keystroke events (I use that in my LeerColorPicker to allow keystrokes to move the crosshairs around.) And then there was that nasty Interop thing that we needed to use in order to do things that just was not included in the first two iterations of the Framework. I wanted to write much of that stuff once so I wouldn't have to think about it again.

So what are LeerTools?

Simply put, they are a collection of controls, dialogs, methods and some Interop wrappers that worked the way I felt I needed to write the quality of application I hoped to create. And having been a user of some open source code in my career, I decided to give back to the development community and release this suite of tools. Although many of the controls are basically replacements for some things that are available in .Net, either using or just reviewing the code can prove to be useful in several ways:

  1. Some of the controls offer features that are not available in the .Net equivalents.
  2. Some of the controls just don't exist in .Net Framework.
  3. Having the source code makes it easier to customize the controls to your liking.
  4. The concept of the LeerSkin to have a consistent color scheme can certainly be broadened to provide a total look and feel across the controls.
  5. Buried throughout may be interesting examples of how to do certain things and/or workaround known problems.
  6. The collection of additional Methods may save some time in reinventing the wheel.

Note that most of the LeerTools controls do not inherit from the .Net counterparts. For the most part they inherit from very basic classes such as Control, UserControl and NativeWindow.

What is included in LeerTools?

Controls:

Dialogs:

Other goodies:

Using the code

The best way to get started is to unzip the application, compile the solution (please use .Net Framework 1.1 as there are a few bugs that were fixed in 1.1 that I rely on), then add the LeerTools.dll to your VS design tools. If you like, you might create a new section for LeerTools to keep the new controls separate. The sample application is not pretty nor heavily commented, but does demonstrate a good deal of the functionality. The LeerTools source files, however, are extremely heavily commented and I have supplied a reasonably accurate LeerTools.chm documentation file created with NDOC.

Note: LeerTools was written entirely in C# on Windows XP Pro, and tested both in the included sample application as well as in a large scale application that makes moderately heavy use of all the controls. However, there has not been any formal beta testing. There is a lot of code, some of which is depends quite a bit on Windows messaging and it may take a few versions to get any kinks out. In addition, I do not know any reason why they would not be usable in Visual Basic.Net, but I do not use that language and therefore have not tested it. I welcome any feedback (good or bad), requests for changes/enhancements, bug fixes, bug reports or questions. Enjoy.

Known issues

The LeerFilePicker can be a little slow when filling the ListView with the contents of a folder that has a large number of files in it. It may be possible to speed it up if I tapped into the Indexing Service.

History

You must Sign In to use this message board.
 
 
Per page   
 FirstPrevNext
GeneralDesign Issues Pin
Jack Schitt
15:20 3 Jul '06  
GeneralRe: Design Issues Pin
leerjet
18:05 3 Jul '06  
GeneralRe: Design Issues Pin
Jack Schitt
18:26 3 Jul '06  
GeneralRe: Design Issues Pin
leerjet
1:59 4 Jul '06  
GeneralWin32 dependancy Pin
desmond5
6:44 3 Oct '04  
GeneralRe: Win32 dependancy Pin
leerjet
4:37 4 Oct '04  
Generalre Bass library dependency Pin
BillWoodruff
3:02 8 Sep '04  
GeneralRe: re Bass library dependency Pin
leerjet
9:35 14 Sep '04  
GeneralLeerSoft?? Pin
lzqwj
23:44 1 Sep '04  
GeneralLibraries Pin
kuerbis
10:07 31 Aug '04  
GeneralRe: Libraries Pin
leerjet
11:13 31 Aug '04  
GeneralBass.dll? Pin
Furty
3:13 31 Aug '04  
GeneralRe: Bass.dll? Pin
leerjet
4:26 31 Aug '04  


Last Updated 30 Aug 2004 | Advertise | Privacy | Terms of Use | Copyright © CodeProject, 1999-2009