Для использования Fore.NET компонентов на формах, разрабатываемых в сторонних средах разработки, необходимо соблюдение следующих условий:
Класс разрабатываемой формы должен быть унаследован от класса Prognoz.Platform.Forms.Net.ForeNetFormVS.
Если на форме используются Fore.NET-компоненты, работающие с объектами репозитория, то для инициализации формы необходимо использовать конструктор, в котором будет вызван конструктор базового класса - Constructor ForeNetFormVS(_Metabase: Prognoz.Platform.Interop.Metabase.IMetabase).
Пример базового кода формы, предназначенной для работы с Fore.NET-компонентами в проекте на C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Prognoz.Platform.Interop.Metabase;
namespace RunForm
{
public partial class Form1 : Prognoz.Platform.Forms.Net.ForeNetFormVS
{
//Конструктор формы
public Form1()
{
InitializeComponent();
}
//Переопределенный конструктор формы, вызывающий базовый конструктор класса ForeNetFormVS
public Form1(IMetabase Mb): base(Mb)
{
InitializeComponent();
}
}
}
Пример инициализации и запуска формы:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
IMetabase Mb;
...
Mb = //Подключение к репозиторию;
//Использование переопределнного конструктора для инициализации формы
Application.Run(new Form1(Mb));
}
В режиме дизайна для формы будет доступно свойство MetabaseDefinition. Данное свойство позволяет подключиться к репозиторию, с которым в дальнейшем будет осуществляться работа. Это необходимо, например, для настройки свойств компонентов, работающих с объектами репозитория.
Примечание. При запуске формы не осуществляется подключение к репозиторию, настройки которого указаны в свойстве MetabaseDefinition. Подключение должно осуществляться в прикладном коде.
Список Fore.NET-компонентов можно загрузить из сборки Prognoz.Platform.Forms.Net. Настройка компонентов и работа с ними осуществляется таким же образом, как и в среде разработки «Форсайт. Аналитическая платформа». Описание компонентов представлено в разделе Компоненты Fore.NET.
При использовании визуальных Fore.NET компонентов может возникнуть ситуация, когда содержимое в компонентах отображается некорректно (искажение форм объектов, несоответствие цветов и т.д.). Данное поведение обусловлено тем, что операционная система по умолчанию использует старые версии библиотеки comctl32.dll. Это базовая библиотека с элементами управления и взаимодействия с пользователем. Разрешить данную проблему можно путем включения в манифест сборки кода, указывающего необходимость подключения и использования библиотеки одной из последних версий:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
//Код манифеста
//...
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"/>
</dependentAssembly>
</dependency>
</assembly>
См. также:
Использование ресурсов продукта «Форсайт. Аналитическая платформа» в сторонних приложениях