2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Переход на новую строку в ListBox (visual basic)
Сообщение26.03.2010, 04:54 
Привет всем! :lol:

Вот есть такая процедура для вывода строк:
Код:
    Sub vivodMas(ByVal f() As String, ByVal n As Integer, ByVal T As ListBox)
        Dim i As Integer
        Dim st As String = ""

        For i = 0 To n - 1
            st = st + f(i)
            T.Items.Add(st)
        Next

    End Sub

Работает она хорошо и все строки друг под другом выводит - как надо.

Скажите почему не работает так:
Код:
    Sub vivodMas(ByVal f() As String, ByVal n As Integer, ByVal T As ListBox)
        Dim i As Integer
        Dim st As String = ""

        For i = 0 To n - 1
            st = st + f(i) & vbCrLf
        Next
        T.Items.Add(st)
    End Sub

Вместо vbCrLf появляются два квадратика. А мне нужно чтоб был переход на новую строку( В инете искал... везде пишут, что надо MultiLine на True поставить, но это для ТекстБокса, а у меня ЛИСТБОКС! :) (((

 
 
 
 Re: Переход на новую строку в ListBox (visual basic)
Сообщение26.03.2010, 06:36 
А в листбоксе так нельзя, увы.

 
 
 
 Re: Переход на новую строку в ListBox (visual basic)
Сообщение26.03.2010, 17:09 
Mikle1990 в сообщении #302540 писал(а):
Скажите почему ... Вместо vbCrLf появляются два квадратика. А мне нужно чтоб был переход на новую строку
Потому что в ListBox данные хранятся в виде массива String, по элементу на строку.
А вот в TextBox данные хранятся в виде одного поля String. И при MultiLine = True символы CR-LF будут правильно отображаться.
Посмотрите свойства (property) и методы этих контролов.

 
 
 
 Re: Переход на новую строку в ListBox (visual basic)
Сообщение26.03.2010, 17:44 
Можно самому отрисовывать элементы листбокса (owner drawn listbox).
Вот тут, например, посмотрите: http://www.thescarms.com/vbasic/OwnerDrawn.aspx

 
 
 
 Re: Переход на новую строку в ListBox (visual basic)
Сообщение26.03.2010, 18:51 
Ну как думаете, такой код сойдёт для 1-го курса?:
Код:
 
    Sub vivodMas(ByVal f() As String, ByVal n As Integer, ByVal T As ListBox)
        Dim i As Integer
        For i = 0 To n - 1
            T.Items.Add(f(i))
        Next
    End Sub


Конечно здесь нет накопления в переменной(и её самой тоже нет) и идёт повторение T.Items.Add. Типо когда накопления, то программа быстрее работает. Если что-то пытаюсь сделать, то кода будет намного больше и, следовательно, стоит оставить код как я написал.
Как считаете?

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Я щас посмотрел, всё-таки буду делать через TextBox)

 
 
 
 Re: Переход на новую строку в ListBox (visual basic)
Сообщение27.03.2010, 12:43 
Аватара пользователя

(Оффтоп)

У меня ощущение, что вы - искусственный разум :)

Если вам просто нужно отобразить несколько строчек - используйте Label. Он, кстати, понимает CR/LF. Если нужно, чтобы этот текст можно было скопировать в clipboard - тогда TextEdit.

 
 
 
 Re: Переход на новую строку в ListBox (visual basic)
Сообщение27.03.2010, 14:27 
Mikle1990 в сообщении #302792 писал(а):
Код:
vivodMas
Не-не-не, это имя стоит заменить! :o

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group