Есть ли способ получить событие начала перетаскивания из Windows? - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть простая реализация перетаскивания:

private void appt_Drop(object sender, DragEventArgs e)
{
    Outlook.Explorer oExplorer = OlApp.ActiveExplorer();
    Outlook.Selection oSelection = oExplorer.Selection;

    foreach (object _obj in oSelection)
    {
        if (_obj is Outlook.AppointmentItem)
        {
            after = (Outlook.AppointmentItem)_obj;
        }
    }
    << send it where it needs to go >>
}

Но теперь я хочу добавить оверлей "drop here".Проблема в том, что я намерен, чтобы пользователи добавляли встречи Outlook в мое приложение, и я не могу понять, как подключиться к событию начала перетаскивания, если оно происходит за пределами моего приложения.Попробуйте, как я мог, Google подвел меня (или я ржавый).

1 Ответ

0 голосов
/ 16 декабря 2018

Вам не нужно беспокоиться о Drag Start, просто обработайте события DragEnter / DragOver / Drop:

  • В вашем контроле установите AllowDrop = "True"
  • Добавить обработчики событий для событий DragEnter и Drop, опционально также для DragOver, если вы хотите предоставить необычную обратную связь

Чтобы получить текст встречи, вы можете использовать e.Data.GetData ("Text")).К сожалению, кажется недокументированным, как получить другие данные о встрече.e.Data.GetData ("RenPrivateAppointment") звучит интересно (см. также здесь ).

...