Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Элемент управления richTextBox, Удаление строки текста 
:(
    Опции темы
davandr
Дата 25.10.2005, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 25.10.2005
Где: Украина, Харьков

Репутация: нет
Всего: нет



Вопрос, казалось бы, простой до безобразия, но тем не менее вызвал затруднения. Кто знает, как удалить строку текста в компоненте richTextBox? На делфях это выглядит так:
memo1.Lines.Delete(4); ))



--------------------
PM MAIL   Вверх
Spawn™Production®
Дата 25.10.2005, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тестер ПО, VB.NET Developer
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 12.4.2005
Где: Зеленоград

Репутация: 1
Всего: 12



Так вот чётко не знаю как, но можно поступить по другому...
У RichTextBox есть свойство Lines с методом GetValue(index), котрое возвращает необходимую строку. Просто-напросто заменяй строку на "" или что тебе угодно.


--------------------
ОС: WinXP SP2 Rus
Frameworks: v1.0.3705, v1.1.4322, v2.0.50215, v2.0.50727
Сам кодю на VB (6.0 (почти забросил), 7.1, 8.0)
PM WWW   Вверх
Akella
Дата 25.10.2005, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



неужели нет что-то типа Items[i]Delete;?
Добавлено @ 16:42
или Lines[i].Delete smile
PM MAIL   Вверх
mr.DUDA
Дата 25.10.2005, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Можно так:
Код

            int need_delete = 2; // надо удалить 3-ю строчку (считаем с нуля)
            string[] lines = this.richTextBox1.Lines;
            string[] new_lines = new string[lines.Length-1];
            Array.Copy(lines, 0, new_lines, 0, need_delete);
            Array.Copy(lines, need_delete+1, new_lines, need_delete, new_lines.Length-need_delete);
            this.richTextBox1.Lines = new_lines;


Или так, проще:
Код

            ArrayList lines = new ArrayList(this.richTextBox1.Lines);
            lines.RemoveAt(2);
            this.richTextBox1.Lines = (string[])lines.ToArray(typeof(string));



--------------------
user posted image
PM MAIL WWW   Вверх
derek
Дата 15.10.2006, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.7.2006

Репутация: нет
Всего: нет



у меня похожая проблема, решил написать в этом посте...

вообщем у меня задача похожая. В richtextbox-е заполненом текстом, нужно убить те строки в которых есть символ "/"...например в билдере я бы сделал это простым циклом с перебором строк, и каждую строку бы проверял на наличие этого символа...
здесь же проблема в richtextbox-е - как посчитать кол-во строк, и их перебирать?

или вообще можно как нибудь еще легче решить поставленную задачу?
PM MAIL   Вверх
mr.DUDA
Дата 16.10.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(derek @  15.10.2006,  02:26 Найти цитируемый пост)
здесь же проблема в richtextbox-е - как посчитать кол-во строк, и их перебирать?

Пример:

Код
using System;
using System.Windows.Forms;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // создадим richedit с многострочным текстом
        RichTextBox richBox = new RichTextBox();
        richBox.Text = @"aaa
bbb / ccc
ddd eee
/
fff /
ggg
/hhh

iii";

        // перебираем строки и удаляем содержащие символ "/"
        List<string> lines = new List<string>(richBox.Lines);
        for (int i = 0; i < lines.Count; i++)
        {
            if (lines[i].Contains("/"))
                lines.RemoveAt(i--); // i-- чтобы не пропустить след. строку после удалённой
        }

        // возвращаем строки обратно в richedit и проверяем результат
        richBox.Lines = lines.ToArray();
        Console.WriteLine(richBox.Text);
    }
}



--------------------
user posted image
PM MAIL WWW   Вверх
derek
Дата 16.10.2006, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.7.2006

Репутация: нет
Всего: нет



огромное спасибо все получилось!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.