Visual Studio 2010 Macro зависает при запуске диалога - PullRequest
3 голосов
/ 27 апреля 2011

Я написал Макрос , который запускает диалоговое окно, в котором пользователь выбирает значение из поля со списком. К сожалению, отображается диалоговое окно, и я получаю песочные часы от 1 до 20 секунд.

Я нашел несколько рабочих приемов, которые, кажется, помогают:

  1. Быстрый CTRL-Alt-Del с последующим Escape.
  2. Нажатие на анимацию вращающегося макроса на панели задач.
  3. Свернуть и развернуть диалоговое окно на панели задач.

Однако это становится настоящей болью, кто-нибудь знает, что происходит, и как я могу предотвратить зависание?

Код, который я использую для запуска диалога:

    Dim winptr As New WinWrapper()
    frm.ShowDialog(winptr)

и

'' This class is used to set the proper parent to any UI that you may display from within a macro.
Public Class WinWrapper
    Implements System.Windows.Forms.IWin32Window

    Overridable ReadOnly Property Handle() As System.IntPtr Implements System.Windows.Forms.IWin32Window.Handle
        Get
            Dim iptr As New System.IntPtr(DTE.MainWindow.HWnd)
            Return iptr
        End Get
    End Property
End Class

Ответы [ 4 ]

1 голос
/ 05 августа 2011

Я получаю симуляцию зависания всякий раз, когда мои макросы вызывают функцию MsgBox.Кажется, что зависания исчезают после повторного запуска макроса несколько раз (это может быть подсказкой к ошибке), но это также нереализуемое решение.

0 голосов
/ 26 ноября 2012

Закрытие редактора макросов VS по некоторым причинам в основном исправляет проблему для меня. Я все еще вижу задержки от 2 до 3 секунд.

0 голосов
/ 08 июля 2011

Я думал, что макросы Visual Studios 2010 не поддерживают Winforms.

http://msdn.microsoft.com/en-us/library/bxk3af4y.aspx

Макросы VS в настоящее время не поддерживают формы Windows.

0 голосов
/ 29 мая 2011

Если вы устанавливаете SP1, есть несколько исправлений ошибок, включая исправление зависания VS 2010 и Visual Studio «Ошибка нехватки виртуальной памяти»

...