Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / помогите с отрисовкой listview / 3 сообщений из 3, страница 1 из 1
11.03.2015, 14:31
    #38901376
Karlus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с отрисовкой listview
Добрый день. Помогите разобраться. Есть код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
 Dim ProgressBar1 As New ProgressBar
                ProgressBar1.Name = "progressbar1_18"
                ProgressBar1.Location = New Point(TextBox3.Left, TextBox3.Bottom + 50)
                ProgressBar1.Size = New Size(200, 25)
                ProgressBar1.Step = 1
                ProgressBar1.Maximum = ListView1.CheckedItems.Count - 1
                Me.Panel1.Controls.Add(ProgressBar1)
For I = 0 To ListView1.Items.Count - 1
                    If ListView1.Items(I).Checked Then
                        ListView1.Refresh()
                        ListView1.EnsureVisible(I)
                        ListView1.Items(I).Selected = True
                        ListView1.Items(I).Focused = True
                        Me.Refresh()
                        Me.Focus()
                        If ListView1.Items(I).SubItems(2).Text = "X" Then
                            If My.Computer.FileSystem.DirectoryExists(ListView1.Items(I).SubItems(4).Text & "\DataBase\Convert") = True Then
                                My.Computer.FileSystem.CurrentDirectory = ListView1.Items(I).SubItems(4).Text 
                                Shell("ipconfig", AppWinStyle.NormalFocus, True)
                            End If
ListView1.Items(I).BackColor = Color.LightGoldenrodYellow

                        End If
                        ProgressBar1.Increment(1)
                    End If
                Next


Этот код висит на Button1_Click
При выполнении строки listview подкрашиваются желтым цветом, текущая строка выделяется, прогрессбар, двигается, но все это происходит до тех пор, пока не доходит до последней видимой строки в listview. После этого и listview и progressbar замирают, а цикл продолжает выполняться. После выполнения цикла progressbar сразу становится равным 100% и listview встает на последний элемент. Как заставить прокручиваться listview до выделенной строки и как заставить progressbar не замирать?
И еще, до кучи, вопрос. Может кто подскажет, как реализовать активность формы во время выполнения вызванного шела? Т.е. когда активен shell? форма становится неактивной. Т.е. остановить цикл невозможно. Вот можно как-либо реализовать так чтобы форма оставалась активной. и можно было бы остановить цикл по нажатию на другую кнопку?
...
Рейтинг: 0 / 0
11.03.2015, 18:35
    #38901721
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с отрисовкой listview
Karlus,

Самый просто вариант, добавить в цикл Application.DoEvents(), можно сразу после изменения значения ProgressBar.
...
Рейтинг: 0 / 0
12.03.2015, 10:32
    #38902116
Karlus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с отрисовкой listview
VSVLADKarlus,
Самый просто вариант, добавить в цикл Application.DoEvents(), можно сразу после изменения значения ProgressBar.
Спасибо, о самом простом и не подумал)
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / помогите с отрисовкой listview / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]