Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 01.10.2015, 01:54   #11
ninja2
Форумчанин
 
Регистрация: 13.08.2015
Сообщений: 193
Репутация: 18
По умолчанию

Цитата:
Потому что webBrowser это просто ссылка на элемент на форме. Вы присвоили переменной другую ссылку, но на форме от этого ничего не поменялось. И старый никуда не делся, и новый не появился.
А почему на форме ничего не поменялось, вроде ссылке присвоил другую ссылку? В С# вроде через equals ссылки присваиюваются вычитал.

Код конструктора
Код:

public MainWindow()
        {
            InitializeComponent();
            
            //присваиваем ссылку
            webBrowser.Equals(new System.Windows.Forms.WebBrowser());
            //вызываем зборщик мусора
            GC.Collect();
            GC.WaitForPendingFinalizers();

            webBrowser.Navigate("http://google.ru");    
        }

А как удалить старый объект, GC вызвал хз. вроде он должен удалить объект первый?
ninja2 вне форума   Ответить с цитированием
Старый 01.10.2015, 08:49   #12
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,141
Репутация: 3316

icq: 512-765
skype: alexp.frl
По умолчанию

Equals это обычно сравнение по содержимому (если переопределено в классе), a == это ReferenceEquals. Кроме string и Value типов (стандартные int, double, ..., и struct), у них == это Equals.
К присваиванию не имеет отношения.

Тут не в GC дело. Можно ж не задавать Name и элемент будет на форме, просто не будет переменной для простого доступа к нему.
Надо из контейнера на форме (Grid и т.п.) удалить/добавить.

И вообще GC.Collect не надо вызывать самому кроме некоторых редких случаев, и то Collect не означает, что он прям сейчас придет.
Для удаления unmanaged ресурсов (и элементов WindowsForms тоже) есть IDisposable (метод Dispose).
Код:

webBrowser.Dispose();

удалит его.

Последний раз редактировалось Alex11223; 01.10.2015 в 10:32.
Alex11223 на форуме   Ответить с цитированием
Старый 01.10.2015, 14:59   #13
ninja2
Форумчанин
 
Регистрация: 13.08.2015
Сообщений: 193
Репутация: 18
По умолчанию

Цитата:
Тут не в GC дело. Можно ж не задавать Name и элемент будет на форме, просто не будет переменной для простого доступа к нему.
Надо из контейнера на форме (Grid и т.п.) удалить/добавить.
А как из этой формы удалять вручную?
ninja2 вне форума   Ответить с цитированием
Старый 01.10.2015, 15:06   #14
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 17,141
Репутация: 3316

icq: 512-765
skype: alexp.frl
По умолчанию

http://lmgtfy.com/?q=wpf+add+control+%20in+code
Alex11223 на форуме   Ответить с цитированием
Старый 01.10.2015, 17:53   #15
ninja2
Форумчанин
 
Регистрация: 13.08.2015
Сообщений: 193
Репутация: 18
По умолчанию

Непойму почему из за этого кода не закрывается программа.
Код:

while (m_flag)
            { System.Windows.Forms.Application.DoEvents(); }

Этот код когда комментирую тогда программа закрывается, когда с ним то не закрывается программа. Программа не может выйти с него и я в этот момент нажимаю крестик и все окно пропадает, а программа не удаляется. Можно в Closing делать m_flag=false.
Сделал в обработчике Closing тогда закрылась.

Че цикл подвисает, программа закрылась, должен и цикл закрыться?

Что то не ясно, если цикл зациклится, то уже что программу не закрыть?

Последний раз редактировалось ninja2; 01.10.2015 в 17:56.
ninja2 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отключить js в webbrowser daaa Общие вопросы Delphi 15 27.01.2014 21:03
отключить css в webbrowser Delphi designer999 Работа с сетью в Delphi 0 11.06.2010 09:54
Как отключить звуки WebBrowser'а? Marsel737 Мультимедиа в Delphi 14 14.01.2010 11:29
Ошибка выполнения сценария WebBrowser [Internet] Рустам Работа с сетью в Delphi 2 12.03.2009 23:19
Игнорирование ошибок сценария в WebBrowser Vladimir K. Общие вопросы Delphi 1 04.02.2008 00:23


16:31.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru