How To Tutorials

How to Create a .NET Button (Program)

Starting with PxPlus 2025, a .NET Interface was added to PxPlus that allows for the creation of .NET objects in your application.

Important Note:
.NET requires that Windows Desktop Runtime 8 be installed.

.NET object names are case sensitive.

For this example, you will be creating a .NET button control in a program. You will be adding various button properties (i.e. color and text) and creating an event when the button is pressed using the new interface.

    

Properties and Event of the .NET Button

A .NET button is associated with various properties that allow you to customize its appearance and behavior. For this tutorial, you will be shown just a few of the many possibilities that are available when using properties.

This table lists the properties and event for the .NET button you will be creating.

Object/Property

Description

BackColor

Background color of the button.

Enabled

Makes the button available for use or disables it so that it cannot be used.

ForeColor

Color of the button text.

Visible

Hides or shows the button.

Image

Adds an image to the button.

Text

Adds text to the button.

Event

Description

Click

Event triggered by a button click.

How to Define the Main Object for the .NET Button

On the Command line, define a Button object.

Syntax:

     def object net_button,@(20,20,18,2.8),"[.NET]System.Windows.Forms,System.Windows.Forms.Button"

    

How to Add Text to the .NET Button

These steps show you how to add text to the .NET button.

For this example, you will be adding the text "Save" to the button.

1.

To add text to the button, enter the syntax below.

Syntax:

     net_button'text$="Save"

2.

Ensure that the button is enabled.

Syntax:

     net_button'Enabled=1

3.

Ensure that the button is visible.

Syntax:

     net_button'Visible=1

    

How to Set the Background Color for the Button

These steps show you how to add a background color to the button.

1.

You need to define a Color object to change the appearance of the button.

Syntax:

     def object color,"[.NET]System.Drawing,System.Drawing.Color"

2.

Set BackColor$ for the background color of the button. For this example, the background color will be LemonChiffon.

The PvxHandle$ property is used for assigning or passing in a .NET object to a .NET object constructor, property or method.

Syntax:

     net_button'BackColor$=color'LemonChiffon'pvxhandle$

    

How to Set the Color of the Button Text

To set colors, you also have the option to use RGB colors.

For this example, you will be using the RGB code for the color Crimson, which is RGB: 220 20 60.

Syntax:

     net_button'ForeColor$= color'FromArgb(220,20,60)'pvxhandle$

    

How to Add an Image to the .NET Button

These steps show you how to add an image to the .NET button.

1.

Define another object called img. This image object (img) will allow the placement of an image.

Syntax:

     def object img,"[.NET]System.Drawing,System.Drawing.Image"

2.

Create a variable to hold the path to the image file using the PTH() function.

For this example, the variable name is image_path$. The path will be dependent on the location of the image you will be using.

Syntax:

     image_path$=pth("*plus\inomads\sysimage\checkmark.png")

3.

The FromFile object will look for the specified image location.

The Image will default to the center of the text. In the next set of steps, you will be changing the alignment.

Syntax:

     net_button'Image$=img'FromFile(image_path$)'pvxhandle$

    

How to Align an Image on the .NET Button

These steps show you how to align an image on the .NET button.

1.

Define another object called ContentAlignment. This object will allow the alignment of an image. The default is centered.

Syntax:

     def object imgalign,"[.NET]System.Drawing,System.Drawing.ContentAlignment"

2.

For this example, you will be applying a Left alignment. Use the property called MiddleLeft.

Syntax:

     net_button'ImageAlign$=imgalign'MiddleLeft'pvxhandle$

    

3.

Before going any further, enter START on the Command line to drop all objects.

How to Create a Program to Run

To create this button programmatically, you will need to create a program to run.

For this example, you will be creating and naming the program:  dotnet_button

1.

Copy and paste the following lines of code into a program to be executed.

! dotnet_button - .Net button programmatically
!
! Create and initialize a Button
     
def object net_button,@(20,20,18,2.8),"[.NET]System.Windows.Forms,System.Windows.Forms.Button"
!
! Define the object for Color
     
def object color,"[.NET]System.Drawing,System.Drawing.Color"
      net_button'BackColor$=color'LemonChiffon'pvxhandle$
! Set the color of the background
      net_button'ForeColor$= color'FromArgb(
220,20,60)'pvxhandle$ ! Add color of the text
!
! Button properties
      net_button'Text$=
"Save" ! Add text on the button
      net_button'Enabled=
1 ! Enable Net_BSave'Enabled=0 ! Disable
      net_button'Visible=
1 ! Visible Net_BSave'Visible=0 ! Hide
!
     
def object img,"[.NET]System.Drawing,System.Drawing.Image" ! Add an image to the button
     
def object imgalign,"[.NET]System.Drawing,System.Drawing.ContentAlignment" ! Align an image
      image_path$=PTH(
"*plus\inomads\sysimage\checkmark.png")
      net_button'Image$=img'FromFile(image_path$)'pvxhandle$
      net_button'ImageAlign$=imgalign'MiddleLeft'pvxhandle$
! Re-align to the left of the text
!

 
! Wait for user to click the button
     
while 1
     
obtain (0,siz=1)'ME',*,'MN'
     
if ctl=-1999 \
       
then break ! If user closes the dialog using the 'X' top right corner
     
wend 
!
! Clean up the object
     
drop object color,err=*next
     
drop object img,err=*next
     
drop object imgalign,err=*next
     
drop object Click,err=*next
     
drop object net_button,err=*next
!
     
end

2.

Save the program as "dotnet_button".

3.

Run the program.

4.

The button will display on the screen. The program will wait for input, at the WHILE/WEND loop, until the dialog is exited via the X (Close button) in the top right corner.

How to Set an Event

Events are functions of the button that will be performed when the user clicks the button.

How to Set an Event to Show a Message Box

These steps show you how to set an event to show a message box when the user clicks the Save button.

1.

Load the dotnet_button program and insert these lines prior to the WHILE/WEND loop:

Syntax:

     Click=new("ClickEvent")
     on event from Net_Button process Click

2.

Save the program.

3.

Create an object program for the main program to invoke with the lines of code shown below. This program must be called ClickEvent.pvc and be saved in the same directory as the main program.

Insert these lines:

     def class "ClickEvent"
     function Click(sender,evtArgs)Click for event "Click"
    
end def
Click:
    
enter sender,evtArgs
    
msgbox "Information has been updated!","Save Confirmation"
     return

4.

Save and close the program.

5.

To test this event, reload and run the dotnet_button program.

6.

When the button is clicked, the following message box displays:

PxPlus Program .NET Button (dotnet_button)

After completing this tutorial example, you should have a working program similar to the one below:

! dotnet_button - .Net button programmatically
!
! Create and initialize a Button
    
def object net_button,@(20,20,18,2.8),"[.NET]System.Windows.Forms,System.Windows.Forms.Button"
!
! Define the object for Color
    
def object color,"[.NET]System.Drawing,System.Drawing.Color"
     net_button'BackColor$=color'LemonChiffon'pvxhandle$
! Set the color of the background
     net_button'ForeColor$= color'FromArgb(
220,20,60)'Pvxhandle$ ! Add color of the text
!
! Button properties
     net_button'Text$=
"Save" ! Add text on the button
     net_button'Enabled=
1 ! Enable Net_BSave'Enabled=0 ! Disable
     net_button'Visible=
1 ! Visible Net_BSave'Visible=0 ! Hide
!
    
def object img,"[.NET]System.Drawing,System.Drawing.Image" ! Add an image to the button
    
def object imgalign,"[.NET]System.Drawing,System.Drawing.ContentAlignment" ! Align an image
     image_path$=PTH(
"*plus\inomads\sysimage\checkmark.png")
     net_button'Image$=img'FromFile(image_path$)'pvxhandle$
     net_button'ImageAlign$=imgalign'MiddleLeft'pvxhandle$
! Re-align to the left of the text
!
! Set the button to return a message box when clicked
     Click=new(
"ClickEvent")
    
on event from Net_Button process Click
!
! Wait for user to click the button
    
while 1
    
obtain (0,siz=1)'ME',*,'MN'
    
if ctl=-1999 \
      
then break ! If user closes the dialog using the 'X' top right corner
    
wend 
!
! Clean up the object
    
drop object color,err=*next
    
drop object img,err=*next
    
drop object imgalign,err=*next
    
drop object Click,err=*next
    
drop object net_button,err=*next
!
    
end

PxPlus ClickEvent Object Program (ClickEvent.pvc)

def class "ClickEvent"
     
function Click(sender,evtArgs)Click for event "Click"
     
end def
!
Click:
     
enter sender,evtArgs
     
msgbox "Information has been updated!","Save Confirmation"
     
return 

See Also

.NET Interface
How To Tutorials (for .NET Interface)
DEF OBJECT Define Windows Object
ON EVENT Event Processing