devspec
@devspec
Помогло? Отметь решением

В каких случая вызов метода через делегат не приводит к обновлению интерфейса?

Я пишу некий софт на VB .NET 2012 WinForms.
У главной формы есть метод LoadTree, который, как понятно из названия, загружает дерево (не важно откуда и как). Для упрощения обрежу код:

Public Delegate Sub LoadTreeDelegate()
Sub LoadTree()
        tvMain.Nodes.Clear()
End Sub


При вызове из самой формы (по нажатию на кнопку или еще как-то) метод отрабатывает и дерево очищается.

Есть некий пользовательский элемент управления (также разрабатываемый мной), откуда через делегат я пытаюсь вызвать метод главной формы, чтобы перезагрузить дерево. Делаю это следующим образом:

Dim d As New frmMain.LoadTreeDelegate(AddressOf frmMain.LoadTree)
d.Invoke()


Судя по отладчику, метод выполняется (отладчик в него заходит при вызове делегата) и дерево должно быть очищено. Но этого не происходит - дерево остается в неизменном состоянии.

Можете подсказать, в какую сторону копать?
  • Вопрос задан
  • 2427 просмотров
Пригласить эксперта
Ответы на вопрос 1
devspec
@devspec Автор вопроса
Помогло? Отметь решением
Удалось сделать через события, но вопрос остается открытым и интересным - почему не удавалось сделать через делегаты?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы