Skip to main contentSkip to search
Powered by Zoomin Software. For more details please contactZoomin
Progress DocumentationProgress Documentation
Progress Documentation
  • Home
  • Home
  • EnglishČeštinaDeutsch (Germany)Español (Spain)Français (France)Italiano (Italy)Português (Brasil)日本語Русский (Russia)中文 (简体) (China)中文 (繁體, 台灣) (Taiwan)ar-AR
  • Login

Use .NET Classes in ABL Applications

Handle user interface events

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
Table of Contents
  • Overview
    • General capabilities and limitations
      • Support for .NET in OpenEdge on Windows
        • Changes and limitations with .NET on Windows
        • Migrate from .NET Framework to .NET on Windows
      • Support for .NET in OpenEdge on Linux
        • Migrate from .NET on Windows to Linux
      • Capabilities
      • Limitations
      • Adjust the OpenEdge installation to use a different .NET version
      • Troubleshoot loading of .NET
    • Object model and architecture
      • Incorporation of the .NET object model
        • .NET objects on the session object chain
        • Compile-time access to .NET objects
      • GUI for .NET run-time architecture
      • Performance note
    • Simple example
  • Access .NET Objects
    • Access and manage .NET classes from ABL
      • Support for .NET classes
      • Limitations of support for .NET classes
    • Reference and instantiate .NET classes
      • How .NET organizes types for reference
      • Identify .NET assemblies to ABL
      • Reference .NET class and interface types
        • Reference inner classes and interfaces
        • Reference arrays of objects
        • Reference .NET generic types
      • Use case sensitivity with .NET objects
      • Use unqualified .NET type names
      • Instantiate and manage .NET class instances
        • Instantiate and obtain instances of .NET classes
        • Cast .NET class and interface types
        • .NET class instances and garbage collection
    • Access .NET class members
      • Access members of .NET interfaces
      • Access static members of a .NET class
      • Specify .NET constructor and method parameters
      • Access .NET indexed properties and collections
        • Access .NET indexed properties dynamically
        • Default indexed properties
        • Indexed property overloading
        • Indexed properties in chained references
        • Work with collections
    • Handle .NET events
      • Manage .NET events in ABL
      • Identify the events published by a .NET object
      • Define handlers for .NET events in ABL
        • Identify the signature for an event handler on a third-party .NET object
        • Identify the signature for an event handler on an OpenEdge .NET object
      • Specify handler subscriptions for .NET events
      • Manage .NET events from ABL-extended .NET classes
      • Event handling example
    • Handle .NET exceptions
      • Use the ABL error trapping constructs
      • Use properties and methods on .NET exception objects
      • Unique scenarios when handling errors with .NET objects
        • Raise errors from ABL handlers for .NET events
        • Handle .NET exceptions raised during display of a .NET form
        • Raise errors from overridden .NET methods or implemented .NET interface members
  • Extend .NET Objects
    • Features of ABL-derived .NET classes
    • Derive .NET classes in ABL
      • Access inherited members of a .NET base class
      • Define new ABL members in a class that inherits from a .NET class
      • Override .NET methods
      • Override .NET abstract properties
      • Override .NET virtual properties
      • Override .NET abstract events
      • Get type information (reflection)
    • Manage events for ABL-derived .NET classes
      • Publish inherited .NET events
      • Publish inherited .NET abstract events
      • Handle events on controls contained by ABL-derived .NET classes
    • Features of ABL classes that implement .NET interfaces
    • Implement .NET interfaces in ABL
    • Error handling for ABL-extended .NET classes
  • Use .NET data types in ABL
    • Overview of .NET data types in ABL
      • Value types in ABL
      • Reference types in ABL
    • General ABL support for .NET types
      • Support for .NET mapped object and primitive data types
      • Support for .NET object types
      • Support for .NET value types as objects
    • Implicit data type mappings
      • Implicit array mappings
      • An ABL INTEGER larger than its .NET destination
      • Negative ABL values and unsigned .NET destinations
      • ABL DECIMAL and .NET System.Decimal
      • Default matching ABL and .NET data types
      • An ABL INT64 larger than its .NET System.UInt32 destination
      • An ABL DECIMAL larger than its .NET System.UInt64 destination
      • ABL DECIMAL and .NET System.Double or System.Single
    • Explicit data type mappings
    • Assign between ABL primitive or array types and System.Object
    • Pass ABL data types to .NET constructor and method parameters
      • Indicate explicit .NET data types
      • Data type widening
    • Get .NET data member, property, and method return values
    • .NET boxing support
      • Automatic boxing
      • Manual boxing
    • .NET null values and the ABL Unknown value (?)
    • Support for ADO.NET DataSets and DataTables
    • Access and use .NET enumeration types
      • Enumerations in .NET
      • .NET enumerations in ABL
      • Use the Progress.Util.EnumHelper class
    • Work with .NET generic types
      • Identify generic type parameters
      • Identify constraints on generic type parameters
    • Access and use .NET arrays
      • Access .NET arrays
      • Array mapping: conversion between ABL arrays and .NET arrays
      • Array assignment
      • Example: Map an ABL array to a .NET array
      • Example: Access a .NET array
  • Create and use forms and controls
    • OpenEdge .NET form and control objects
      • Commonly used .NET public form methods and events
        • Common .NET public form methods
        • Common .NET public form events
      • Commonly used .NET public control methods, properties, and events
        • Common .NET public control methods
        • Common .NET public control properties
        • Common .NET public control events
    • ABL support for managing .NET forms and controls
      • Initialize and block on .NET forms
        • Prepare to block on .NET forms
        • Block on and process events for .NET forms
      • Block on non-modal forms
      • Block on modal dialog boxes
      • Access .NET forms using the SESSION system handle
      • Access resource files for .NET forms
    • Create custom .NET forms and controls
      • Sample ABL-derived .NET non-modal form
      • Sample ABL-derived .NET modal dialog box
      • Sample ABL-derived .NET MDI form
      • Sample ABL-derived .NET user control
  • Bind ABL data to .NET controls
    • ABL and .NET data binding models
      • ABL data binding
      • .NET data binding
    • ABL data binding model for .NET
      • Extent of integration with .NET controls
      • Supported .NET controls
      • Supported ABL data sources
    • ProBindingSource
      • Constructors
        • Field lists
        • Bind ProBindingSource to queries
        • Bind ProBindingSource to buffers
        • Bind ProBindingSource to ProDataSets
        • Special case: unbound class instance
      • Properties
        • AutoUpdate and rapid prototyping
      • Methods
      • Events
      • Data binding examples
        • Query binding example
        • Buffer binding example
        • ProDataSet binding example
      • Programming considerations
        • 1-based or 0-based indexes
        • Row transactions
        • Use the Dispose( ) method
        • Support for Visual Designer
        • Bind .NET controls to BLOB fields
        • Bind .NET controls to CLOB fields
        • Use the .NET DataMember property
    • Manage data updates
      • Enable and disable updates
      • Use sorting
        • Use the UltraGrid's BeforeSortChange and AfterSortChange events
        • Sort child tables for a recursive data-relation
        • Use the SortRequest event
      • Maintain currency with the Position property
      • Synchronize data
        • Reopen queries
        • Manipulate result list entries
        • Use the Refresh methods
      • Handle user interface events
        • Check for updates
        • Write screen values to the data source object
        • Find the proper child query in a ProDataSet
        • Use the CreateRow event
        • Use the CancelCreateRow event
        • Use the OffEnd event
        • Use the PositionChanged event
    • Example of an updatable grid
      • Definitions
      • Main block
      • Internal procedures and functions
  • Use .NET forms with ABL windows
    • Features for using forms and windows together
    • ABL session architecture for forms and windows
      • Shadow windows
      • FormProxy objects
      • Embedded windows
    • Parent forms and windows to each other
    • Embed ABL windows in .NET forms
      • Elements of an embedded ABL window
      • Use the ABL features to embed a window
      • Embed a single window in an MDI child form
      • Embed one or more windows in a .NET form
      • Behavior of forms with embedded windows
    • Handle form and window input
      • Common event handling for forms and windows
      • Common focus detection for forms and windows
    • Manage form and window run-time behavior
    • Configure common session features
      • Palette management
      • Font management
      • Regional settings: localization
  • OpenEdge-installed .NET Controls
    • OpenEdge controls
    • Microsoft .NET UI controls
    • OpenEdge Ultra Controls for .NET
  • Notes on using the ProBindingSource
    • Determine what to bind to the ProBindingSource
    • Repopulate data in an ABL data source bound to a ProBindingSource
    • Use the ProBindingSource AddNew( ) and Remove( ) methods
Table of Contents

Handle user interface events

Save PDF
Save selected topicSave selected topic and subtopicsSave all topics
Share
Share to emailCopy topic URL
Print
  • Last Updated: June 19, 2019
  • 1 minute read
    • OpenEdge
    • Version 13.0
    • Documentation

The sections that follow discuss how to employ the ProBindingSource's properties, methods, and events to handle UI events.

Contents
  • Check for updates
  • Write screen values to the data source object
  • Find the proper child query in a ProDataSet
  • Use the CreateRow event
  • Use the CancelCreateRow event
  • Use the OffEnd event
  • Use the PositionChanged event
TitleResults for “How to create a CRG?”Also Available inAlert