Wstawianie kolejnych linii do tekstu ( textbox, richtexbox).

0

Witam,
Mam taki problem i nie mogę go sam rozwiązać.
Podczas naciskania Enter chcę żeby dodawał mi się " - " do tekstu, ale nie na końcu, tylko tu gdzie użytkownik, sobie zaznaczy.
Dokładnie ma to wyglądać tak: zaznaczam w 2 wierszu naciskam Enter schodzi do 3 wiersza ( oczywiście robi pustą linę ) wypisuje " - " . Resztę tekstu przepisuje wiersz poniżej. Coś w stylu takiej listy w wordzie.
Za pomoc z góry dzięki.
tyle na razie mi się udało naskrobać...oczywiście nie działa to dobrze.

if (e.KeyChar == 13)
{
string[] tekst = new string[rtxt.Lines.Length];
tekst = rtxt.Lines;
rtxt.Clear();

            for (int i = 0; i < tutaj_nie wiem jak z linią bo nie chce jej ustawiać na sztywno   ; i++) rtxt.AppendText(tekst[i] + Environment.NewLine);
            rtxt.AppendText(" - " + Environment.NewLine);

            for (int i = 1; i < tekst.Length; i++) rtxt.AppendText(tekst[i] + Environment.NewLine);

}

1

Nie wiem czy dobrze, zrozumiałem:

        private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {  
                int i = richTextBox1.SelectionStart;
                richTextBox1.Text = richTextBox1.Text.Insert(i, "-" + Environment.NewLine);
                e.Handled = true;

                richTextBox1.SelectionStart = i + 2;
            }
        }

title

0

Dzięki za odpowiedź....a odpowiedź nie do końca....
Ma to wyglądać tak jak w załączniku.
Po wskazaniu myszką na koniec linii z napisem foo i nacisnięciu ENTER, tworzy się nowa linia z punktorem ( u mnie jest nim " - " ). i wskażnik znajduje się za nim tak żeby użytkownik mógł dalej pisać...
To samo dzieje się dalej zawsze po nacisnięciu ENTER.

0

Jednak po analizie twojego kodu doszedłem do wniosku że działa właściwie on jak należy, a z małymi przeróbkami już sobie poradzę....Serdeczne dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1