De hier beschreven code voegt een (of meer) knoppen toe aan de bovenkant van de HTML-editor (in de Core-versie of, voor de klassieke versie, als de optie "HTML-editor v2" is ingesteld op JA (id = USE_HTML2).
Deze ontwikkeling gebruikt de methode AddToolStripItems van MercatorUi.MovableControls.MovableHtmlBox2. De verwachte parameter is een opsomming van ToolStripItems. Dit laat toe om bijvoorbeeld volgende elementen te gebruiken:
- ToolStripButton : een eenvoudige knop
- ToolStripDropDownButton : een knop met een dropdownlijst van andere knoppen (toe te voegen aan DropDownItems)
- ToolStripSplitButton : een knop met een extra dropdownmogelijkheid
- ToolStripSeparator : een scheidingsteken (verticaal)
- ToolStripMenuItem : een menu item
De onderstaande code voegt een knop toe zonder tekst maar met de afbeelding die overeenkomt met de magic16 resource. Het voegt eenvoudig "hello" toe aan de onderkant van de HTML-inhoud.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Linq;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;
using MercatorExtensions;
using MercatorDatabase;
// <CompileWithRoslyn />
namespace Action
{
public class Customizer : MercatorUi.ICustomizers.IActionEngineCreated, MercatorUi.ICustomizers.IActionEngineClosed
{
public void ActionEngineCreated(MercatorUi.Engine.Crm.ActionEngine actionEngine)
{
actionEngine.ActionFormLoaded += actionEngine_ActionFormLoaded;
}
public void ActionEngineClosed(MercatorUi.Engine.Crm.ActionEngine actionEngine)
{
actionEngine.ActionFormLoaded -= actionEngine_ActionFormLoaded;
}
void actionEngine_ActionFormLoaded(object sender, EventArgs arg)
{
MercatorUi.Engine.Crm.ActionEngine actionEngine = (MercatorUi.Engine.Crm.ActionEngine)sender;
foreach (MercatorUi.MovableControls.MovableHtmlBox2 htmlBox in actionEngine.ActionForm.MovableControls.Values.OfType<MercatorUi.MovableControls.MovableHtmlBox2>())
{
ToolStripButton toolStripButtonCustom = new ToolStripButton("", GraphicKit.CurrentGraphicKit.Images.magic16, (s, e) =>
{
// hier de knopcode
htmlBox.HtmlEditor.HtmlText += "<p>hello</p>";
}) { AutoSize = true, Padding = new Padding(3) };
ToolStripItem[] items = new ToolStripItem[2]
{
new ToolStripSeparator(),
toolStripButtonCustom
};
htmlBox.AddToolStripItems(items);
}
}
}
}