| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Сохранение с разных закладок |
| Автор: xa3apg 11.10.2008, 09:29 | ||||||
| Доброго времени суток Делаю такстовый редактор с подсветкой синтаксиса для самодельного скриптового языка. Решил сделать открытие каждого файла в отдельной закладке. Вот что у меня есть :
Как мне сделать сохранение документа с RichTextBox'a в активной закладке? У меня не получается получить сам объект при смене закладки...нашел только при условии что он является сендером
я уже пытался (может это и тупо конечно =\) давать закладке и ричу в ней одинаковые имена , но ричу подставлял суффик, но обращение типа
выдавало ошибку, мол, нет ссылки на объект. Смотрел рефлектором похожий блокнот...там через хэш массив обращались к ричам...но когда я попробовал сделать анологично, мне тоже начало кричать что нет ссылки на объект. :( |
| Автор: xa3apg 14.10.2008, 10:35 | ||||||||
То что надо. Сделал класс от TabPage и в нем создал контрол, теперь сохраняет нормально. Только встал другой вопрос : хочу чтобы в тексте закладки при модификации текста подставлялся знак "*" в конце имени файла, а при сохранении убирался. Вроде сделал: создал
в TextChanged класс добавил :
С новыми документами работает прекрасно, но вот когда я открываю какой-либо готовый скрипт, то мне моментально ставится звездочка в имени (я то понимаю что он выполняется при создании ричбокса, и уже добавление текста с файла считает модификацией). Пытаюсь в открытии принудительно ставить
но он как будто его не замечает |
| Автор: elbjarn 14.10.2008, 11:31 | ||||
проблема решилась бы, если бы вы использовали вместе с полем txtChanged пару функций, к примеру, SetAsteriskName() и SetClearName(). в этих функциях, соответственно, вы изменяете имя закладки на зведочку или без звездочки. функции эти вызывать при TextChanged у ричтекстбокса и при вызове Save(). только чтобы не обновлять при каждом вводе символа название закладки, как раз-таки проверять значение поля txtChanged, или если оно true, то не вызывать функцию. примерно так (код пишу от руки):
|