Вот ещё один случай проблемы которую я описал в первом посте.
Делаю своеобразный аналог кнопки с фиксацией.
Компонент представляет из себя pictureBox, который обрабатывает событие Click. И при щелчке изменяет отображаемую картинку.
В классе компонента сделал объявления
Код:
private string imageOnPath; //Путь к изображению которое должно быть показано, если state == true
private string imageOffPath; //Путь к изображению которое должно быть показано, если state == false
private bool state; //Если нажата - TRUE; Не нажата - FALSE;
Код компонента привожу почти полностью
Код:
[DispId(1),
DisplayName("Изображение OFF")]
public string ImageOFF
{
get { return imageOffPath; }
set { imageOffPath = value; }
}
[DispId(2),
DisplayName("Изображение ON")]
public string ImageON
{
get { return imageOnPath; }
set { imageOnPath = value; }
}
[DispId(3),
DisplayName("Кнопка нажата")]
public bool BtnState
{
get { return state; }
set { state = value; }
}
//Происходит при щелчке по картинке
private void pictureBox_Click(object sender, EventArgs e)
{
state = !state;
if (state == false)
{
pictureBox.ImageLocation = imageOffPath;
}
else
{
pictureBox.ImageLocation = imageOnPath;
}
}
//При загрузке компонента должен считываться state, и загружаться нужное изображение
private void ButtonExControl_Load(object sender, EventArgs e)
{
if (BtnState == false)
{
pictureBox.ImageLocation = ImageOFF;
}
else
{
pictureBox.ImageLocation = ImageON;
}
}
В СКАДЕ создал переменную Команда1. Сделал ей "Восстановление при рестарте". Подал её на Выход и на Вход динамизации компонента.
запускаю СКАДУ, щёлкаю на компонент. меняется картинка. Команда1 становится ИСТИНА.
Останавливаю СКАДУ. Запускаю СКАДУ. Команда1 ИСТИНА, но компонент отображает картинку которую должен отображать если вход ЛОЖЬ. Т.е. не читает при запуске входа.
Щёлкаю по кнопке один раз. Картинка не меняется, Команда1 становиться ЛОЖЬ. (всё правильно). Щелкаю второй раз. Команда1 стаёт ИСТИНА, Картинка меняется. При следующих остановах-запусках скады, та же печаль.
Как быть? Как заставить компонент прочитать входы при запуске?