Невозможно программно повлиять на управление Scintilla во время выполнения

Я пытаюсь использовать элемент управления ScintillaNET в приложении, над которым работаю. Я перетаскиваю элемент управления в свою форму и запускаю форму. Элемент управления появится на форме. Это хорошо. Кроме того, если я задаю какие-либо свойства в редакторе свойств элемента управления (например, ConfigurationManager.Language), я могу вводить текст на этом языке и видеть подсветку синтаксиса.

Я сталкиваюсь с проблемами, когда пытаюсь программно изменить свойства. Например, я пытаюсь загрузить текст из файла в форму (я делаю это в Загрузке формы). Текст не отображается. Я также не могу показать номера строк или выполнить какое-либо другое количество задач (включая программную смену языка).

Любая идея, что я могу делать неправильно? Даже такой простой код, как приведенный ниже, не работает:

private void scintilla1_Load(object sender, EventArgs e)
{
    scintilla1.ConfigurationManager.Language = "xml";
}

person JasCav    schedule 11.03.2010    source источник


Ответы (2)


Просто добавьте scintilla1.ConfigurationManager.Configure();

private void scintilla1_Load(object sender, EventArgs e)
{
    scintilla1.ConfigurationManager.Language = "xml";
    scintilla1.ConfigurationManager.Configure();
}
person alfen    schedule 06.01.2011
comment
Я давно не работал над этим проектом, но спасибо за ответ. Я надеюсь, что это может помочь кому-то еще. - person JasCav; 06.01.2011

После того, как я провел некоторое время, играя с различными событиями, оказалось, что я не могу повлиять на элемент управления Scintilla, пока он не станет видимым. Следовательно, событие «Загрузка» не позволяет мне вносить какие-либо программные изменения в элемент управления, пока я не сделаю его видимым.

Это немного странно, и мне кажется бессмысленным вообще иметь событие Load, но я просто хотел, чтобы все знали, что происходит, на случай, если кто-то еще столкнется с той же проблемой.

person JasCav    schedule 11.03.2010