File Edit View Project Format Debug Run Query Diagram Статьи Задачи Help

Начало Примеры
CommandButton PictureBox
TextBox ListBox Советы MS Agent
Часто задаваемые вопросы Шутка!
Ссылки Книги Справочники ActiveX
Игры Дополнительно





Option Explicit



Private Sub List1_Click()
' загружаем данные из файла в ComboBox и связываем их с Listbox
cbofile.zip

' Меняем строчки между двумя списками методом drag-n-drop
draglist.zip

' Заполняем список строчками из файла
txt2list.zip ' 3 кб (обновлено 22 июня 2003)

Отсев элементов списка по заданному критерию

Данный пример отсеивает все неподходящие по критерию элементы списка и выводит оставшиеся элементы в другой список. Расположите на форме элементы TextBox и 2 элемента ListBox

  
Private Sub Text1_Change()
   intPlacement = Len(Text1)
   strFind = UCase(Text1.Text)
   List1.Clear

   For intResult = 0 To List2.ListCount
     intSearchResult = InStr(UCase(Left(List2.List(intResult), intPlacement)), strFind)
   If intSearchResult > 0 Then List1.AddItem List2.List(intResult)
   Next intResult
End Sub

Private Sub Form_Load()
   Text1.Text = ""
   With List2
     .AddItem "Москва"
     .AddItem "Москворечье"
     .AddItem "Московская правда"
     .AddItem "Московский комсомолец"
     .AddItem "Московские новости"
     .AddItem "Москвич"
     .AddItem "Москаль"
     .AddItem "Москит"
     .AddItem "Мороженное"
     .AddItem "Бейсик"
     .AddItem "Молодец"
   End With
End Sub  

Выделение элемента списка правой кнопкой мыши

Private Sub Form_Load()
   List1.AddItem "Русский_Проект"
   List1.AddItem "Бейсик"
   List1.AddItem "Пример"
End Sub

Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
   Dim iTemp As Integer

   If Button = vbRightButton Then
     With List1
       iTemp = ((Y / Screen.TwipsPerPixelY) \ (TextHeight("A") / Screen.TwipsPerPixelY)) + .TopIndex

       If iTemp > .ListCount - 1 Then iTemp = -1
       .ListIndex = iTemp
       .SetFocus
     End With
   End If
End Sub

Поменять местами элементы списка

Первая кнопка перемещает выделенный элемент вверх, вторая кнопка - вниз

Private Sub Command1_Click()
   With List1
     If .ListIndex < 0 Then Exit Sub
     nItem = .ListIndex
     If nItem = 0 Then Exit Sub
     .AddItem .Text, nItem - 1
     .RemoveItem nItem + 1
     .Selected(nItem - 1) = True
   End With
End Sub

Private Sub Command2_Click()
   With List1
     If .ListIndex < 0 Then Exit Sub
     nItem = .ListIndex
     If nItem = .ListCount - 1 Then Exit Sub
     .AddItem .Text, nItem + 2
     .RemoveItem nItem
     .Selected(nItem + 1) = True
   End With
End Sub

Private Sub Form_Load()
   List1.AddItem "1"
   List1.AddItem "2"
   List1.AddItem "3"
   List1.AddItem "4"
   List1.AddItem "5"
End Sub

Автоматический скроллинг в конец списка

В примере показано, как можно автоматически переходить в конец списка при добавлении новых элементов. За автоматический переход в конец списка отвечают последние две строчки. Первая строчка выделяет последний (NewIndex) элемент списка, вторая - снимает выделение

Private Sub Command1_Click()
   Static a As Integer
   a = a + 1
   List1.AddItem a
   List1.Selected(List1.NewIndex) = True
   List1.Selected(List1.NewIndex) = False
End Sub

Сохранение данных из списка в текстовом файле

Private Sub Command1_Click()
   Dim listtext As String
   Dim i As Integer
   
   For i = 0 To List1.ListCount - 1
     listtext = listtext & List1.List(i) & vbCrLf
   Next

   Dim FN As Integer
   FN = FreeFile
   Dim FName As String
   FName = "C:\sample.txt"
   Open FName For Output As #FN
   Print #FN, listtext
   Close #FN
End Sub
Реклама

Гарден ринг предлагает венки из искусственных цветов траурные . Короткие сроки изготовления.