Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 2
Регистрация: 16.03.2012
Сообщений: 15

WebBrowser, первая ссылка из listView открывается нормально, другие - с торможением

16.03.2012, 20:01. Показов 1206. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот весь код. Выделяю в listView файл - он отображается в webBrowser.
Первый проходит нормально, второй тоже, а вот на третий раз прога подвисает.
Что я здесь намутил?
Помогите найти ошибки.

C#
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace Qu
{
    public partial class Form1 : Form
    {
        string fullPath;
        public Form1()
        {
            InitializeComponent();
            DriveTreeInit();
        }
        //метод инициализации дерева DriveTreeInit
        public void DriveTreeInit()
        {
            string[] drivesArray = Directory.GetLogicalDrives();
            tView.BeginUpdate();
            tView.Nodes.Clear();
            foreach (string s in drivesArray)
            {
                TreeNode drive = new TreeNode(s, 0, 0);
                tView.Nodes.Add(drive);
                GetDirs(drive);
            }
            tView.EndUpdate();
        }
        //получение списка каталогов
        public void GetDirs(TreeNode node)
        {
            DirectoryInfo[] diArray;
            node.Nodes.Clear();
            string fullPath = node.FullPath;
            DirectoryInfo di = new DirectoryInfo(fullPath);
            try
            {
                diArray = di.GetDirectories();
            }
            catch
            {
                return;
            }
            //каталоги
            foreach (DirectoryInfo dirinfo in diArray)
            {
                TreeNode dir = new TreeNode(dirinfo.Name, 1, 2);
                node.Nodes.Add(dir);
            }
        }
        //обработчик события OnBeforeExpand
        private void tView_OnBeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            tView.BeginUpdate();
            foreach (TreeNode node in e.Node.Nodes)
            {
                GetDirs(node);
            }
            tView.EndUpdate();
        }
        //при выделении директории в treeView, заполняет listView содержимым выделенной директории 
        private void tView_OnAfterSelect(object sender, TreeViewEventArgs e)
        {
            try
            {
                TreeNode selectedNode = e.Node;
                fullPath = selectedNode.FullPath;
                DirectoryInfo di = new DirectoryInfo(fullPath);
                listView.Items.Clear();
                //Заполняем ListView файлами
                foreach (FileInfo fileInfo in di.GetFiles())
                {
                    ListViewItem lvi = new ListViewItem(fileInfo.Name);
                    lvi.ImageIndex = 3;
                    lvi.Tag = fileInfo.FullName;
                    this.label1.Text = fullPath;
                    if (selectedNode.IsSelected)
                    {
                        string ext = fileInfo.Extension.ToLower();
                        switch (ext)
                        {
                            case ".mht":
                                {
                                    listView.Items.Add(lvi);                                   
                                    break;
                                }
                            case ".htm":
                                {
                                    listView.Items.Add(lvi);
                                    break;
                                }
                            case ".html":
                                {
                                    listView.Items.Add(lvi);
                                    break;
                                }
                        }  
                    }              
                }
            }
            catch (Exception ex)
            {
                ex.ToString();
            }
        }
        private void listView_ItemActivate(object sender, EventArgs e)
        {
            System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender;
            int i;
            i = lw.TopItem.Index; 
            string path = lw.SelectedItems[i].Tag.ToString();
            webBrowser1.Navigate(path);
            
        }
 
    }
}
И еще вопрос нужно ли диспозить webBrowser после каждого открытия страницы?

Добавлено через 1 минуту
Нашел возможную проблему висяка.
Контрольная точка на строке
C#
1
string path = lw.SelectedItems[i].Tag.ToString();
Дает следующее:
base {System.Windows.Forms.Control} = {System.Windows.Forms.ListView, Items.Count: 3, Items[0]: ListViewItem: {Hiren's BootCD From USB F}

Причем в Items[0] всегда 0, какой бы файл я не выбирал.

MSDN:
Свойство SelectedIndices не будет содержать никаких индексов, если доступ к нему осуществлялся раньше, чем был создан дескриптор элемента управления ListView, что обычно происходит, когда элемент управления ListView был первоначально загружен для отображения в форме.

А уменя ListView появляется в tView_OnAfterSelect.

В этом ли дело?
И как решить эту проблему?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.03.2012, 20:01
Ответы с готовыми решениями:

Не открывается ссылка в Webbrowser
Доброе утро .. сталкнулся с такой проблемой .. Ставлю на форму webbrowser и в нём пытаюсь запустить вот эту строчку......

Не открывается ссылка через webbrowser для парсинга
Есть ссылка : http://s4.radioboss.fm:8158/ Как её открыть для парса?

WebBrowser - ссылка открывается не в вкладке, а в Internet Explorer
Народ, задачка на засыпку. Написал браузер, для начала норм, но когда нажимаешь ссылку из яндекса или гугла, то она открывается не в новой...

2
12 / 12 / 0
Регистрация: 25.02.2012
Сообщений: 71
16.03.2012, 23:38
вставь паузу и создай событие полной загрузки страницы
0
0 / 0 / 2
Регистрация: 16.03.2012
Сообщений: 15
19.03.2012, 11:48  [ТС]
Че-то наваял, но результат тот-же:
C#
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
27
28
29
   public void listView_ItemActivate(object sender, EventArgs e)
        {
            System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender;
 
            foreach (ListViewItem item in listView.SelectedItems)
            {
                Timer time = new Timer();
                int i;
 
                int t = 100;
                t = time.Interval;
 
                i = lw.TopItem.Index;
                string path = lw.SelectedItems[i].Tag.ToString();
                webBrowser1.Navigate(path);
                time.Start();
                if (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
                {
                    Application.DoEvents();
                }
                else
                {
                    if (t > 100)
                    {
                        webBrowser1.Stop();
                    }
                }
            }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.03.2012, 11:48
Помогаю со студенческими работами здесь

Связь на ноуте упала и не поднялась больше. Компьютер работает нормально, другие устройства от вайфай тоже работают нормально
Добрый день. Очень похожая проблема, только к сожалению у меня не пингуется не один айри.

Webbrowser не отображает страницу нормально
Добрый день! Хочу в Webbrower построить список документов на сайте: ...

Где размещать надстройку, чтобы ей нормально пользовались другие юзеры?
Проблема такая. Сделал файл надстройки, положил его у себя в C:Documents and SettingsUSERApplication DataMicrosoftAdd InsНадстройка.xla ...

Белая страница у СбербанкОнлайн, другие сайты работают нормально [GAIGO]
Страница сайта Сбербанк Online не открывается - белое полотно. Примерно с начала декабря на ноуте не стоит антивирус, был удалён, т.к....

Ноутбук перестал подключаться к Wi-Fi роутеру, хотя другие устройства нормально работают
Здравствуйте, ноутбук Asus n56vv. Сначала была ситуация что ноутбук перестал подключаться к wifi роутеру дома(я учусь и приезжаю редко),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru