2009-12-28 3 views
1

У меня есть список, заполняемый из ввода текстового поля.C# Текстовое поле в список

{ 
     textBox2.Text.Replace("\r\n", "\r"); 
     listBox1.Items.Add(textBox2.Text); 
    } 

Что происходит это текстовое поле заселяется в одном формате колонки, когда он движется по к ListBox папке \ г \ п получает меняется на черные квадраты и не заполнять так же, как это выглядело в текстовом поле ,

ответ

6

Вместо этого вы можете сделать строку Split.

string[] items = Regex.Split(textBox2.Text, "\r\n"); 
listBox1.Items.AddRange(items); 
+0

Не компилируется. Аргумент '1': невозможно преобразовать из 'string' в 'char []' – 2009-12-28 14:49:44

+0

... Split (новый char [] {'\ r', '\ n'}) ... – YotaXP

3
listBox1.Items.Add(textBox2.Text.Replace("\r", "").Replace("\n", "")); 
+0

это удалит \ r \ n, что не так, я хочу сохранить \ r \ n, что \ r \ n переводится на черные квадраты при перемещении в список – 2009-12-28 14:47:00

+0

@Mike эти черные квадраты представляют невидимый символ. –

+0

Я понимаю, но если я его отлаживаю, я получаю .... textBox2 = {Text = "00028 \ r \ n00369 \ r \ n00386 \ r \ n00390 \ r \ n00391 \ r \ n00392 \ r \ n00398 – 2009-12-28 14:52:12

0

Только в случае, если это полезно для всех.

Если вы хотите, чтобы весь текст в текстовом поле был отдельным элементом, а не каждой строкой текста, являющимся отдельным элементом. Вы можете нарисовать элемент самостоятельно.

Пример:

public Form1() 
    { 
     InitializeComponent(); 
     listBox1.DrawMode = DrawMode.OwnerDrawVariable; 
     listBox1.DrawItem += new DrawItemEventHandler(listBox1_DrawItem); 
     listBox1.MeasureItem += new MeasureItemEventHandler(listBox1_MeasureItem);  
    } 

    void listBox1_MeasureItem(object sender, MeasureItemEventArgs e) 
    { 
     e.ItemHeight = (int)e.Graphics.MeasureString(textBox1.Text, listBox1.Font).Height; 
    } 

    void listBox1_DrawItem(object sender, DrawItemEventArgs e) 
    { 
     e.DrawBackground(); 
     e.DrawFocusRectangle(); 
     e.Graphics.DrawString(textBox1.Text, listBox1.Font, Brushes.Black, e.Bounds); 
    } 


    private void button1_Click(object sender, EventArgs e) 
    { 
     listBox1.Items.Add(textBox1); 
    } 
0

Вы хотите, ListBox, чтобы показать символы перевода строки ('\ г \ п')? Вы хотите, чтобы текст отображался как одна строка в списке или отдельные строки для значений 00028, 00039 и т. Д.?

Кстати, когда я тестировал, у меня были только цифры, а не «\ r \ n» в моем списке. Нет черных квадратов.

+0

Прошу прощения, если мой «ответ» казался неосведомленным. Я просто хотел, чтобы некоторые вещи были прояснены и сообщили, что я не могу воспроизвести ошибку. Английский не мой родной язык, поэтому я может показаться более резким, чем я. – magnus

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