Skip to main content

SDI Forms & Document Classes

These classes are intended to speed up the creation of Windows Desktop applications by providing some standard file handling and Document (i.e. File) management classes.

The classes are shown in the following class diagram:

Class Diagram (UML) showing the Kajabity.DocForms class relationships.


Kajabity.DocForms support the following standard Document (File) Handling features:

  • New file
  • Open a file
  • Save file
  • Save file with new name
  • Open recent file
  • Close file
    • Confirm close if file modified.

As well as:

  • Exit application

The recent documents feature stores recent document in a registry entry with configurable number of document paths stored.


To make use of these classes, create a Windows Forms application and change the MainForm to extend SDIForm instead of Form . Then, extend the Document class to represent the contents of the document type you wish to handle (TextDocument is an example) and then extend the DocumentManager class to load and save the file format (TextDocumentManager is an example).

As an example, there are TextDocument and TextDocumentManager classes included.

Also, a number of Sample applications are provided to show how the classes might be used – and illustrating the use of CSV and Java Properties classes at the same time.

The classes are: –

  • SDIForm – extends the System.Windows.Forms.Form class to add Document (file) lifecycle methods (New, Open, Save/As, Close) which make use of Document and DocumentManager derived classes. It also checks to see if a document has been modified before closing.
  • Document – a simple abstract base class containing the name of a document and a modified flag. Extend this class to represent the type of document your application maintains. See TextDocument for a simple example.
  • DocumentManager – a base class which works with an SDIForm to implement Document lifecycle tasks (New, Open, Save/As, Close). The default name and extension are used when creating, opening or saving files. Extend this class to provide a way to read and write documents for your application. See TextDocumentManager for a simple example.
  • TextDocument – a Document with a simple representation of a text file, it holds the text in a single String.
  • TextDocumentManager – a DocumentManager implementation for managing Text documents (*.txt) with methods to Load and Save a text file into a TextDocument as a single String.


  • DocumentType – a work in progress (so ignore for now) which will encapsulate the name and extension for a document type (e.g. “Text File”, “txt”).