23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
1

Создание Uri для webBrowser

04.05.2011, 12:12. Показов 7802. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет!
Есть объект webBrowser. Пытаюсь ему указать параметр Url, но не выходит почему-то.
Не могу понять почему:
C#
1
2
3
4
p_path += '/' + tp_web_file[1];
            url = new Uri(p_path);
            webBrowser.Url = url;
            webBrowser.Refresh();
Вот что собой представляет p_path:
p_path "E:/C-Project/CreateTheory/CreateTheory/bin/Debug/temp.html" string
url создается нормально.
Но вот при попытке присвоения webBrouser.Url - просто игнорируется. Поле остается пустым.
Пробовал так же задавать руками:
C#
1
webBrowser.Url = new Uri(p_path)
все то же самое.
Подскажите пожалуйста, что я делаю не так?) Уже замучался.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2011, 12:12
Ответы с готовыми решениями:

Uri и все об uri
Народ, можете объяснить для чего нужно uri Например что бы в CookieContainer добавить куку нужно...

Какие средства есть для работы с URI?
Есть набор ссылок. например http://www.qqq.com http://www.qqq.com/eee.rar (могут быть разные...

Как правильно создать файл из Uri или Uri.getPath() для отправки на сервер?
Есть Uri, полученный после выбора файлов в галерее. Uri вроде правильный:...

WebBrowser: ошибка преобразования в Uri
Думаю все понятно... ошибка преобразования. Что мне делать? #pragma endregion private:...

12
гроза ленивых студентов
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
04.05.2011, 13:13 2
вот это работает...
C#
1
2
3
            string path = "uri.htm";
            webBrowser1.Url = new Uri(@"C:\Users\myUser\Desktop" + @"\" + path, UriKind.Absolute);
            webBrowser1.Refresh();
теперь давай разбираться:
1) сравни направление слешей у тебя:
E:/C-Project/CreateTheory/CreateTheory/bin/Debug/temp.html
и у меня:
"C:\Users\myUser\Desktop"
2) если ты пытаешь получить доступ по пути - тебе надо либо использовать символ "@" перед строкой, либо использовать спецсимволы - для слеша это двойной слеш, например:
C#
1
webBrowser1.Url = new Uri("C:\\Users\\dkuzmin\\Desktop" + "\\" + path, UriKind.Absolute);
1
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
04.05.2011, 13:57  [ТС] 3
Спасибо, сейчас опробую.
По поводу слешей, я не зря указал обратные слеши, т.к. Uri в итоге сам собой переводит их к такому виду. Да и дело в том, что первый раз у меня получилось так сделать и получилось именно с обратными слешами. Дело темное, что дело ясное. В любом случае, спасибо.

Добавлено через 8 минут
Опробовал - все тоже самое: полный игнор команды. Свойство да и сам объект просто остаются пустыми.
0
гроза ленивых студентов
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
04.05.2011, 14:04 4
выкладывай код, которым ты попробовал + значение переменной p_path
0
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
04.05.2011, 14:25  [ТС] 5
C#
1
2
3
4
5
6
7
String path;
String tp_file = "\\temp.html";
 
path = CreatePath();
 
webBrowser.Url = new Uri(path + tp_file, UriKind.Absolute);  //url;   // new Uri("C:/webdoc/temp.html");
webBrowser.Refresh();
C#
1
2
3
4
5
6
7
8
9
10
private String CreatePath()
        {
            DirectoryInfo dir = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory());
            bool a= dir.Exists;
            if (a)
                return dir.FullName;
            else
                MessageBox.Show("Не удалось прочитать путь");
                return "";
            }
Ну вот как-то так.

Добавлено через 12 минут
в блоке else, конечно же в {} все это.
0
гроза ленивых студентов
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
04.05.2011, 14:34 6
1) webBrowser.Url - а он у тебя точно так называется?! именно webBrowser? без циферок, без всякого такого?
2)
C#
1
2
string str = path + tp_file;
webBrowser.Url = new Uri(str, UriKind.Absolute);
заюзай плз отладчик и точно скажи чему равен str в момент присваивания значения webBrowser.Url
0
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
04.05.2011, 14:42  [ТС] 7
по поводу имени, четыре раза проверил + попросил товарища проверить, мало ли что Да и в добавок, компилятор бы мне вряд ли простил использование несуществующих объектов.
На момент выполнения строки 2 из твоего предыдущего поста str равен:
C#
1
        str "E:\\C-Project\\CreateTheory\\CreateTheory\\bin\\Debug\\temp.html"  string
0
гроза ленивых студентов
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
04.05.2011, 14:51 8
ежели не жалко - выкладывай проект...потому что пока чудеса какие-то (либо я сам чего-то не понимаю)
если жалко - проверь на всякий случай - точно html? не htm? не еще что-нить?
0
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
04.05.2011, 15:03  [ТС] 9
абсолютно не жалко, проект рассчитан на знакомство...
чтобы добраться до этого момента достаточно в первом диалоге нажать "отмена" и на главной форме "сохранить", там бейк-поинт стоит.
Вложения
Тип файла: zip CreateTheory.zip (158.0 Кб, 31 просмотров)
0
гроза ленивых студентов
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
04.05.2011, 15:29 10
решение твоей проблемы...***барабанная дробь*** 2 варианта:
либо 1) пересоздание webBrowser...удали старый, создай новый, код измени соответствующим образом...
либо 2) в файле Form1.Designer.cs удали строку:
C#
1
            this.webBrowser.Url = new System.Uri("", System.UriKind.Relative);
и больше нигде ничего не меняй (ну там тока проверь, чтоб правильная строка ссылка передавалась)


я бы воспользовался вторым способом
1
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
04.05.2011, 15:39  [ТС] 11
Вот чесслово, никогда бы до второго варианта не добрался, слишком поверхностны знания.
Про первый вариант, уже руки чесались, но забегался.
Спасибо наприогромнейшее. Развеял туман.
0
Петррр
04.05.2011, 15:41
  #12
 Комментарий модератора 
Если какой-либо пост на форуме показался вам полезным, нажмите кнопку "Спасибо" внизу самого поста.
0
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
04.05.2011, 15:50  [ТС] 13
[offtop]Я и кнопку нажал, и словами выразил благодарность. Т.к. бездушная кнопка никогда не сможет заменить слов, согласитесь.[/offtop] Извините.
0
04.05.2011, 15:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2011, 15:50
Помогаю со студенческими работами здесь

Как получить URI на который переходит webBrowser?
Я авторизуюсь на сайте методом заполнения формы и клика в автоматическом режиме, как мне получить...

Невозможно преобразовать 'string' в 'System.Uri' при работе с WebBrowser
Почему компилятор ругается на string? Вроде, всё верно... private void...

Создание задания SCHTASK с пробелами в URI
Все просто - путь к файлу содержит пробелы, а программу нужно запускать с аргументами командной...

Создание URI из доменного имени без выбрасывания Exception
Всем привет! Делаю такое: URI.create(uri) У себя там в кишках кидает URISyntaxException:...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru