U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Een knop invoegen in een textbox van een informatiebestand

0000001910     -      29-10-2013

In dit voorbeeld laten we zien hoe u een knop invoegt in een textbox van een informatiebestand.

textbox_button

Daartoe moet u toegang krijgen tot de eigenschappen van de textbox, wat mogelijk is door implementatie van een interface MercatorUi.ICustomizers.IFormLoadCustomizer. Aangezien in een informatiebestandvenster een nieuw event wordt gecreƫerd op basis van een object (de customizer) met een langere levensduur dan het informatiebestandvenster, moeten we MercatorUi.ICustomizers.IFormClosedCustomizer implementeren om er het abonnement op het event ButtonCustomClick te schrappen.

Dat gebeurt makkelijk via de onderstaande code:

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using MercatorUi;
using MercatorApi;

namespace SigCli
{
     public class Customizer : MercatorUi.ICustomizers. IFormLoadCustomizer , MercatorUi.ICustomizers. IFormClosedCustomizer
    {
         public void FormLoadCustomize( Form form)
        {
            MercatorUi.Forms.Sig. SigForm sigForm = (MercatorUi.Forms.Sig. SigForm )form;

            MercatorUi.MovableControls. MovableTextBox textExp = (MercatorUi.MovableControls. MovableTextBox )sigForm.MovableControls[ "O37F122SIU" ];
            textExp.ButtonCustom.Visible = true ;
            textExp.ButtonCustomClick += new EventHandler (textExp_ButtonCustomClick);
        }

         public void FormClosedCustomize( Form form)
        {
            MercatorUi.Forms.Sig. SigForm sigForm = (MercatorUi.Forms.Sig. SigForm )form;

            MercatorUi.MovableControls. MovableTextBox textExp = (MercatorUi.MovableControls. MovableTextBox )sigForm.MovableControls[ "O37F122SIU" ];
            textExp.ButtonCustomClick -= new EventHandler (textExp_ButtonCustomClick);
        }

         void textExp_ButtonCustomClick( object sender, EventArgs e)
        {
            MercatorUi.MovableControls. MovableTextBox textBox = (MercatorUi.MovableControls. MovableTextBox )sender;
            MercatorUi. Dialogs .Stop(textBox.Text);
        }
    }
}

Merk op in deze code:

  • De ontvangen 'form'-parameter is van het standaardtype System.Windows.Forms.Form. Er moet dus een cast gebeuren naar het specifieke type MercatorUi.Forms.Sig.SigForm. Daartoe dient de eerste lijn.

  • In een SigForm beschikt men over een MovableControls-woordenboek dat alle controles omvat die door de gebruiker zijn toegevoegd voor het scherm van het informatiebestand. Daarin kan de gewenste textbox makkelijk worden gelokaliseerd aan de hand van zijn ID. In dit voorbeeld is de ID "O37F122SIU". Deze informatie kan makkelijk worden gekopieerd uit de eigenschappen van de textbox in kwestie, in de modus informatiebestandparametrering.

  • Wenst u een afbeelding in de knop te plaatsen, dan volstaat het die in de hoofddirectory van Mercator te plaatsen en de navolgende code in te voeren, bijvoorbeeld voor de lijn met Visible = true:
Zoom
System.Drawing. Image imgPhone = System.Drawing. Image .FromFile(MercatorUi. Globals .MainDir + "tinyphone.png" );
textExp.ButtonCustom.Image = imgPhone;