In dit voorbeeld laten we zien hoe u een knop invoegt in een textbox van een informatiebestand.
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:
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:
System.Drawing. Image imgPhone = System.Drawing. Image .FromFile(MercatorUi. Globals .MainDir + "tinyphone.png" );
textExp.ButtonCustom.Image = imgPhone;