У меня есть компонент, для которого я создаю редактор. Одна из функций этого компонента - разрешить привязку к этому компоненту других элементов управления моего собственного типа.
Редактор обнаруживает все такие элементы управления, и редактор позволит мне массово редактировать эту привязку.
Однако, если файл (-ы) формы в настоящий момент сохраняются при вызове редактора, изменение этих свойств позволяет мне видеть изменения этих элементов управления, когда я возвращаюсь в обычный конструктор форм, но файл по-прежнему сохраняется. помечен как «неизмененный», и, таким образом, никакие изменения не сохраняются.
Что мне нужно сделать в редакторе компонентов, чтобы сообщить дизайнеру, что что-то случилось?
Это простой вызов флага или метода, или мне нужно больше учебника по этому вопросу?
Позвольте мне попытаться объяснить это лучше.
Я удаляю компонент на форме, он находится в серой области под ним, и у этого компонента у меня есть свойство с собственным редактором свойств. Это работает.
Когда я вызываю редактор свойств, он вызывает форму, и в этой форме я перечисляю все другие элементы управления в той же форме, в которую был добавлен компонент. Это означает, что если у меня есть текстовое поле и поле со списком в этой форме, они отображаются в этом диалоге, который был открыт, когда я вызывал редактор свойств. Это также работает.
Если моя форма редактора свойств изменяет какие-либо свойства в этом текстовом поле или комбинированном ящике, скажем, он изменяет свойство .Text, а затем возвращается к моей форме, закрывая редактор свойств, я могу проверить текстовое поле и комбинированный список и увидеть Свойство .Text действительно изменилось.
Однако, и это проблема, файл не помечен как измененный. Это означает, что если я нажму F5, отладчик запустится без перестроения, и если я закрою и снова открою форму, свойства вернутся к своему последнему сохраненному значению.
Я посмотрю на метод OnComponentChange из одного из ответов и посмотрю, устраняет ли это эту проблему.