![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| xa3apg |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.9.2008 Репутация: нет Всего: нет |
Доброго времени суток
Делаю такстовый редактор с подсветкой синтаксиса для самодельного скриптового языка. Решил сделать открытие каждого файла в отдельной закладке. Вот что у меня есть :
Как мне сделать сохранение документа с RichTextBox'a в активной закладке? У меня не получается получить сам объект при смене закладки...нашел только при условии что он является сендером
я уже пытался (может это и тупо конечно =\) давать закладке и ричу в ней одинаковые имена , но ричу подставлял суффик, но обращение типа
выдавало ошибку, мол, нет ссылки на объект. Смотрел рефлектором похожий блокнот...там через хэш массив обращались к ричам...но когда я попробовал сделать анологично, мне тоже начало кричать что нет ссылки на объект. :( |
||||||
|
|||||||
| elbjarn |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 13.4.2008 Где: Дубна Репутация: 1 Всего: 3 |
это потому, что this - ссылка на Form. В ее коллекции контролов не содержится ваших ричей, там находятся только TabPage, в коллекции контролов которых, в свою очередь, находится искомый ричтектсбокс.
это если делать по вашему пути, искать в коллекции контролов по имени. можно сделать небольшой словарик, где ключи будут - ссылки на TabPage, а значения - ссылки на RichTextBox. но лучше всего - унаследовать контрол от TabPage, в этом контроле определить RichTextBox, и сделать метод у TabPage, типа Save(), который сохраняет содержимое RichTextBox. |
|||
|
||||
| xa3apg |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.9.2008 Репутация: нет Всего: нет |
То что надо. Сделал класс от TabPage и в нем создал контрол, теперь сохраняет нормально. Только встал другой вопрос : хочу чтобы в тексте закладки при модификации текста подставлялся знак "*" в конце имени файла, а при сохранении убирался. Вроде сделал: создал
в TextChanged класс добавил :
С новыми документами работает прекрасно, но вот когда я открываю какой-либо готовый скрипт, то мне моментально ставится звездочка в имени (я то понимаю что он выполняется при создании ричбокса, и уже добавление текста с файла считает модификацией). Пытаюсь в открытии принудительно ставить
но он как будто его не замечает Это сообщение отредактировал(а) xa3apg - 14.10.2008, 11:03 |
||||||
|
|||||||
| elbjarn |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 13.4.2008 Где: Дубна Репутация: 1 Всего: 3 |
проблема решилась бы, если бы вы использовали вместе с полем txtChanged пару функций, к примеру, SetAsteriskName() и SetClearName(). в этих функциях, соответственно, вы изменяете имя закладки на зведочку или без звездочки. функции эти вызывать при TextChanged у ричтекстбокса и при вызове Save(). только чтобы не обновлять при каждом вводе символа название закладки, как раз-таки проверять значение поля txtChanged, или если оно true, то не вызывать функцию. примерно так (код пишу от руки):
|
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |