2011-12-28 1 views
2

Я пытаюсь создать текстовый редактор, который является интерфейсом для списка строк текста. Пользователь может вносить изменения в текстовый редактор, и я хочу, чтобы можно было вернуть изменения в соответствующий элемент в списке. Предполагая, что это списокC# текстовый редактор, моделирующий список

List<string> element; 
element.Add("I was walking one morning,"); 
element.Add(" all of the sudden it started to rain,"); 
element.Add(" I opened my umbrella and looked for the closest coffee shop."); 
element.Add(" After few blocks I was sheltered enjoying my morning coffee."); 

он должен отображать как обычный текст в редакторе:

Я шел утром, все вдруг начался дождь, я открыл свой зонтик и посмотрел для ближайшего кафе. После нескольких кварталов я укрылся, наслаждаясь утренним кофе.

поэтому, когда пользователь вносит изменения в «ищет ближайший», я хочу сказать, что он вносит изменения в элемент [2].

Мне также нужно хранить дополнительную информацию об отдельных элементах (форматирование и другие вещи), отсюда и использование списка.

Я просмотрел редакторы HTML и попытался обернуть каждое предложение в div, но когда пользователь вносит изменения, редактор HTML объединяет div или удаляет его. так что создает дополнительную работу.

Я думал о RTF, но читал в Интернете, что не было установленного стандарта.

Я гибкий с реализацией Перечня и другой информации.

Есть ли у кого-нибудь предложения?

очень понравилось.

+1

Если вам нужно сохранить дополнительную информацию о предложениях, подумайте о создании класса «Sentence» и выставьте необходимые методы/свойства. Использование списка строк не даст вам функциональность, которую вы ищете (не так легко). –

+0

Не понимаю. «Я ходил однажды утром», это не приговор. Он заканчивается запятой, поэтому он является частью более длинного предложения. Если вы действительно раскалываете по предложению, вы можете попробовать и сделать что-то умное с помощью 'text.Split (new [] {'.', '!', '?'})'. Затем, пока никто не удалит ваши полные остановки или не добавит новое предложение, вы можете отслеживать изменения. Просьба уточнить ваши требования, чтобы мы могли помочь. – James

+0

Я бы в конечном итоге создал класс, это естественная прогрессия, но я пытаюсь понять концепцию редактора, прежде чем инвестировать время в другие области. – curiousMo

ответ

0

Чтобы отобразить список в качестве предложения, вы можете использовать string.Join (",", sentence.ToArray()), чтобы присоединиться к вашему строковому элементу в списке.

Вам нужно будет добавить разделитель предложений (некоторый специальный символ), который поможет вам определить предложение изменено.

Вы можете снова заполнить свой список, используя < переменная > .Split (','). ToList().

Надеюсь, это поможет вам, счастливое кодирование!

+0

Получение текста редактору не имеет большого значения, оно определяет область, которая редактируется, что является проблемой. использование специального символа для разделения списка не будет работать, использование может удалить эти символы, и это приведет к выбросу списка. спасибо. – curiousMo

 Смежные вопросы

  • Нет связанных вопросов^_^