OpenEdge .NET form and control objects
- Last Updated: October 24, 2022
- 4 minute read
- OpenEdge
- Version 13.0
- Documentation
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 topic 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 and events that you might use on many of these objects:
- Progress.Windows.Form class —
Progress.Windows.Forminherits 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.Formprovides all of the .NET methods, properties, and events that the MicrosoftSystem.Windows.Forms.Formclass provides. Thus, the type of form that you can create with aProgress.Windows.Forminstance 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 Access and manage .NET classes from ABL). This topic provides more information on using theProgress.Windows.Formclass to create and manage these basic form types.In addition,
Progress.Windows.Formsupports properties that are specifically used to manage .NET forms together with ABL windows in an ABL session. For more information, see Use .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
class —
Progress.Windows.FormProxyinherits 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 ofSystem.Object, this class supports a set of OpenEdge properties in common withProgress.Windows.Form. For more information on theProgress.Windows.FormProxyclass, and how it relates to both .NET forms and ABL windows, see Use .NET forms with ABL windows. -
Progress.Windows.IForm
interface —
Progress.Windows.IFormis a .NET interface that is implemented by bothProgress.Windows.FormandProgress.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 Use .NET forms with ABL windows. -
Progress.Windows.MDIChildFormclass —Progress.Windows.MDIChildForminherits directly fromProgress.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 Use .NET forms with ABL windows. -
Progress.Windows.UserControl
class —
Progress.Windows.UserControlinherits 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.WindowContainerclass —Progress.Windows.WindowContainerinherits 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 Use .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 — See OpenEdge Ultra Controls for .NET.
The sections that follow briefly describe some of the more common methods and events that you might use on an OpenEdge form or control. For a more complete list of commonly-used .NET class members, see .NET to ABL Mapping Reference.