Try OpenEdge Now
skip to main content
GUI for .NET Programming
Creating and Using Forms and Controls : OpenEdge .NET form and control objects
 

OpenEdge .NET form and control objects

Previous chapters include several sample ABL procedures and code fragments for describing basic ABL support for accessing .NET objects. These samples use .NET forms and controls in very basic ways to demonstrate this ABL support for .NET. This section describes all the .NET form and control objects for which OpenEdge provides installed support for the OpenEdge GUI for .NET, and it briefly describes some of the more common .NET methods, properties, and events that you might use on many of these objects:
*Progress.Windows.Form classProgress.Windows.Form inherits directly from the Microsoft .NET general form class, System.Windows.Forms.Form. As such, it provides the foundation for building the three basic types of general-purpose forms available to an OpenEdge GUI for .NET application:
*Non-modal forms — Similar to ABL non-modal windows
*Modal forms (dialog boxes) — Similar to ABL modal dialog boxes
*Multiple document interface (MDI) forms — Not supported by the traditional OpenEdge GUI
As a .NET derived class, Progress.Windows.Form provides all of the .NET methods, properties, and events that the Microsoft System.Windows.Forms.Form class provides. Thus, the type of form that you can create with a Progress.Windows.Form instance depends on how you use its properties, methods, and events, and you can use them in almost exactly the same way as you would use them to implement these form types using a .NET language, such as C# or Visual Basic. The differences lie in the uniquely ABL syntax that you use to interact with forms and the ABL restrictions on access to .NET features in general (see Supported features and limitations). This chapter provides more information on using the Progress.Windows.Form class to create and manage these basic form types.
In addition, Progress.Windows.Form supports properties that are specifically used to manage .NET forms together with ABL windows in an ABL session. For more information, see Using .NET Forms with ABL Windows. Some of these properties can also be used to manage .NET forms when no ABL windows are present. For more information, see ABL support for managing .NET forms and controls.
*Progress.Windows.FormProxy classProgress.Windows.FormProxy inherits directly from the Microsoft .NET root class, System.Object. Whenever you use .NET forms in an ABL session, ABL creates and associates a separate instance of this class with every ABL window that you create in the session. This class association provides a means to access .NET forms and ABL windows from one object chain. Its constructor is private. In addition to the members of System.Object, this class supports a set of OpenEdge properties in common with Progress.Windows.Form. For more information on the Progress.Windows.FormProxy class, and how it relates to both .NET forms and ABL windows, see Using .NET Forms with ABL Windows.
*Progress.Windows.IForm interface Progress.Windows.IForm is a .NET interface that is implemented by both Progress.Windows.Form and Progress.Windows.FormProxy. It provides the common definition for the OpenEdge properties supported by these classes. As an object type, this interface allows you to reference both .NET forms and ABL windows together in a common manner. For more information on using this interface for common access to .NET forms and ABL windows, see Using .NET Forms with ABL Windows.
*Progress.Windows.MDIChildForm classProgress.Windows.MDIChildForm inherits directly from Progress.Windows.Form. It provides an OpenEdge built-in form designed specifically for use as an MDI child form whose client area embeds the client area of a single ABL window. This allows you to display the client-area widgets of an ABL window in the MDI child form and interact with them as native ABL widgets using triggers instead of as controls of a .NET form using handlers on .NET events. For more information on using this class to create MDI child forms and to embed the client area of an ABL window, see Using .NET Forms with ABL Windows.
*Progress.Windows.UserControl classProgress.Windows.UserControl inherits directly from the Microsoft .NET class, System.Windows.Forms.UserControl. This is a control container class that provides a container for user-defined control sets. For more information on using this class, see Sample ABL-derived .NET user control.
*Progress.Windows.WindowContainer classProgress.Windows.WindowContainer inherits directly from the Microsoft .NET class, System.Windows.Forms.UserControl. This is a control container class used specifically to embed the client area of an ABL window. This allows you to display the client-area widgets of an ABL window in the client area of any .NET form and interact with them as native ABL widgets using triggers instead of as controls of the .NET form using handlers on .NET events. Using multiple instances of this control container, you can embed the client areas of multiple ABL windows in a single .NET form. For more information on using this class, see Using .NET Forms with ABL Windows.
*Microsoft .NET UI Controls — A subset of Microsoft .NET Framework controls that OpenEdge installs for access as design components using the Visual Designer of Progress Developer Studio for OpenEdge. These are from the same set of .NET Framework controls that you can access in ABL code that you write using any code editor. For a descriptive list of these controls, see Microsoft .NET UI Controls.
*OpenEdge Ultra Controls for .NET — Controls provided with Infragistics NetAdvantage for NET 2013, Volume 1 (CLR 4.0) that OpenEdge installs for access as design components using the Visual Designer of Progress Developer Studio for OpenEdge. You can also access these controls in ABL code that you write using any code editor. These controls provide a different combination of features than are provided by similar controls in the Microsoft .NET Framework, and they also include additional controls with features not available in the .NET Framework. For a descriptive list of these controls, see OpenEdge Ultra Controls for .NET.
The sections that follow briefly describe some of the more common methods, properties, and events that you might use on an OpenEdge form or control. For a more complete list of commonly-used .NET class members, see OpenEdge Development: GUI for .NET Mapping Reference.
* Commonly-used .NET public form methods, properties, and events
* Commonly-used .NET public control methods, properties, and events