Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как в WebBrowser открыть файл 
:(
    Опции темы
Barabeo
Дата 12.3.2012, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 2.10.2010

Репутация: нет
Всего: нет



Код

webBrowser1.Navigate(path);

Таким макаром, не открывает - пишет не найден путь. Если задать абсолютный путь - тогда всё ОК. Такое не подходит.

Код

FileStream webfile = new FileStream(path, FileMode.Open, FileAccess.Read);
webBrowser1.DocumentStream = webfile;

Таким макаром открывает белиберду - то же не идет.

Есть ли ещё какие методы для открытия файлов .mht в webBrowser.
PM MAIL   Вверх
infarch
Дата 12.3.2012, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Чем плох абсолютный путь? Можно пример того что вы пытаетесь открыть?
PM MAIL   Вверх
Barabeo
Дата 12.3.2012, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 2.10.2010

Репутация: нет
Всего: нет



Цитата(infarch @ 12.3.2012,  13:58)
Чем плох абсолютный путь? Можно пример того что вы пытаетесь открыть?

Открыть пытаюсь файл из ListView в webBrowser.
Т.е. у меня эдакий файл-броузер для .mht - шных файлов.

Код

private void listView_OnItemActivate(object sender, EventArgs e)
        {
          
            foreach(ListViewItem lvi in listView.SelectedItems)
            {
                string ext = Path.GetExtension(lvi.Text).ToLower();
                string path = Path.Combine(fullPath, lvi.Text);
                webBrowser1.Navigate(new Uri(path));
            }
               


Код

 //Заполняем ListView файлами
                foreach (FileInfo fileInfo in di.GetFiles("*.mht"))
                {
                    ListViewItem lvi = new ListViewItem(fileInfo.Name);
                    lvi.Tag = fileInfo.FullName;
                    lvi.ImageIndex = 3;
                    listView.Items.Add(lvi);
                    this.label1.Text = fullPath;
                }

PM MAIL   Вверх
infarch
Дата 12.3.2012, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Вижу что вы заполняете Tag но в дальнейшем его не используете. Почему не сохранить туда полный путь и потом использовать его при открытии?
PM MAIL   Вверх
Barabeo
Дата 12.3.2012, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 2.10.2010

Репутация: нет
Всего: нет



Спасибо.
Заработало:
Код

            System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender;
            string path = lw.SelectedItems[0].Tag.ToString();
           
            if (lw.SelectedItems[0].ImageIndex != 0) 
            {
                try
                {
                    webBrowser1.Navigate(path);
                }
                catch (Exception ex)
                {
                    ex.ToString();
                }
            };

PM MAIL   Вверх
Barabeo
Дата 12.3.2012, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 2.10.2010

Репутация: нет
Всего: нет



Еще один косяк - после открытия иногда второго или третьего файла вывалиывется с исключением:

System.ArgumentOutOfRangeException не обработано
  Message="InvalidArgument=Значение \"0\" недопустимо для \"index\".\r\nИмя параметра: index"
  Source="System.Windows.Forms"
  ParamName="index"


на этой строке:
Код

 string path = lw.SelectedItems[0].Tag.ToString();


В чем может быть проблема?

Это сообщение отредактировал(а) Barabeo - 12.3.2012, 15:38
PM MAIL   Вверх
infarch
Дата 12.3.2012, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Очевидно - lw.SelectedItems пустой. Почему - это уже другой вопрос. Надо код копать.
PM MAIL   Вверх
Barabeo
Дата 15.3.2012, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 234
Регистрация: 2.10.2010

Репутация: нет
Всего: нет



Цитата(infarch @ 12.3.2012,  16:17)
Очевидно - lw.SelectedItems пустой. Почему - это уже другой вопрос. Надо код копать.

Нашел строку где удалятся Item'ы:

Код

 listView.Items.Clear();


Код

 //при выделении директории в 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())


Может в этом беда?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0548 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.