Мышь автоматически выбирает элемент списка при открытии - PullRequest
0 голосов
/ 08 мая 2019

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

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

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

Sub Main
    With UserForm1
        .StartUpPosition = 0
        .Left = Application.Left + (0.5 * Application.Width) - (0.5 * .Width)
        .Top = Application.Top + (0.5 * Application.Height) - (0.5 * .Height)
        .ListBox1.MultiSelect = fmMultiSelectSingle
    End With

    bDictionaryHasAdditions = False

    Call UserForm1.Show
End Sub

Вот упрощенныйИнициализируйте подпрограмму, чтобы заполнить список:

Private Sub UserForm_Initialize()
    With UserForm1.ListBox1
        For iIncrementer = 1 To 100
            .AddItem iIncrementer
        Next iIncrementer
    End With
End Sub

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

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

Я не хочу просто перемещать кнопку, потому что я не хочу, чтобы это происходило с пользователем, если он перемещает мышь до того, как она загрузится.

...