Guidelines for creating a custom control as lucapa

Requirements for control

In order to be able to generate arbitrary control as lucapa, it is necessary to implement interface ICSSoft.STORMNET.Windows.Forms.ILookup. If the control does not implement the interface ICSSoft.STORMNET.Windows.Forms.ICustomizableControl, it is simply generated without adequate settings of their own properties.

In the example we will generate ExtLookUpTextControl.

Generation

In the settings stage you need to choose the “Advanced” tab and click “advanced settings”.

Select the Assembly that contains the control. The value in column “Name” can be changed.

To open the object representation where there is a link to the wizard. And in the settings lucapa specify:

  • Тип лукапа - custom
  • In the ComboBox Имя Лукапа is the name of the control that was specified in the settings of the stage
  • Свойство мастера - property master, to which will be attached (binding) control. For example, for predictive.

Generate the application as usual. Start. In the end, you will receive a form with the generated control.

the resulting code

In the generated form is created control

protected ICSSoft.STORMNET.Windows.Forms.ExtLookUpTextControl ctrlПорода;

Added information about control

m_arrLookupInformations.Add(new ICSSoft.STORMNET.UI.LookupInformation(this.ctrlПорода, "Breed", "STORMCASE.STORMNET.Generator.SerializeNewEditForm/EditPanel(Panel)/ctrlПорода(Ext" + "LookUpTextControl)", null));

Prescribed binding for EditManager

EditManager.Bindings = new ICSSoft.STORMNET.Windows.Forms.Design.Binds("Kilkuskie", typeof(IIS.КошкиСЛапами.Кошка), new ICSSoft.STORMNET.Windows.Forms.Design.OneBind[] {
            new ICSSoft.STORMNET.Windows.Forms.Design.OneBind(ctrlПорода, typeof(ICSSoft.STORMNET.Windows.Forms.ExtLookUpTextControl), "Value", null, "Breed"),
            ...
            );

Tabulated properties of the control

ctrlПорода.DataObjectTypes = null;
ctrlПорода.EditManagerForBind = null;
ctrlПорода.HierarchyField = "";
ctrlПорода.InGridProperty = null;
ctrlПорода.LimitFunction = null;
ctrlПорода.Location = new System.Drawing.Point(56, 12);
ctrlПорода.MaximumSize = new System.Drawing.Size(3000, 20);
ctrlПорода.Name = "ctrlПорода";
ctrlПорода.Property = null;
ctrlПорода.PropForBind = "";
ctrlПорода.PropForUpdate = "";
ctrlПорода.ReadOnly = false;
ctrlПорода.ReadOnlyText = false;
ctrlПорода.Size = new System.Drawing.Size(150, 20);
ctrlПорода.StringedValue = null;
ctrlПорода.SymbolsToIntellisense = 1;
ctrlПорода.TabIndex = 1;
ctrlПорода.Value = null;
ctrlПорода.ViewName = null;
ctrlПорода.ИспользоватьОтображСвойствоПриВводе = false;
ctrlПорода.ОтображаемоеСвойство = null;
ctrlПорода.ОтображатьВсеПоляПриLookup = true;
ctrlПорода.РежимВводаЗначений = false;
ctrlПорода.РежимМастерСтрокой = false;