В ActiveX шкалу отследить затруднительно.
Лучше напишите ВФБ - в нем это сделать можно.
Вид для печати
В ActiveX шкалу отследить затруднительно.
Лучше напишите ВФБ - в нем это сделать можно.
Спасибо, буду думать. Хотелось конечно сделать ActiveX, чтоб его потом можно было на мнемосхемы пачками вставлять и в дереве проекта они не мешались
Ну какие то связи с деревом объектов ActiveX все равно будет иметь, так что разницы нет.
Если нормально строить проект, то элементы не будут мешаться.
В этом случае нужно обратится к другому объекту. Например ITreeItemHlp.GetChild("относительный путь") или IProjectHlp.Item("абсолютный путь")
Извините за глупый вопрос: но что подразумевается под относительным и абсолютным путем?
Относительный - это короткий путь к объектам ниже иерархии (то есть вложенным в данный объект объектам).
Абсолютный - полный путь к объекту.
При попытке использовать данное свойство появляется ошибка вида: "Для нестатического поля, метода или свойства "MasterSCADA.Hlp.IProjectHlp.Item(string)" требуется ссылка на объект". Подскажите пожалуйста какие классы нужно подключить и как выглядит абсолютный путь объекта.
IProjectHlp.Item("Объект 2.Мнемосхема") или IProjectHlp.Item("Объект 2\Мнемосхема") или как-то иначе?
Мнемосхему в пути указывать не надо.
Для полного пути:
var Mnemo= ((ITreeItemHlp)Attribute.TreeItemHlp.Project.Item( "Объект.Объект1")).Attributes["Мнемосхема"];
Mnemo.Open();
Для относительного пути:
var Mnemo=((ITreeItemHlp)Attribute.TreeItemHlp.GetChil d("Объект1")).Attributes["Мнемосхема"];
Mnemo.Open();
Сделал все как вы описали, однако не хочет компилировать:
"System.Attribute" не содержит определение для "TreeItemHlp"
Я наверное что-то делаю неправильно или не использую какой-то модуль в uses ?
Вот код ниже:
using MasterSCADA.GUI;
using MasterSCADA.Hlp;
using System;
using System.ComponentModel;
using System.Runtime.InteropServices;
namespace Control
{
[ComVisible(true),
Guid("DCE97106-1B8C-4D61-81DF-BDA93083C180"),
DisplayName("Контрол")]
public partial class UserControl1 : WinFormsControlBase
{
public UserControl1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var Mnemo = ((ITreeItemHlp)Attribute.TreeItemHlp.Project.Item( "Объект.Объект1")).Attributes["Мнемосхема"];
Mnemo.Open();
}
}
}