2010-04-07 4 views
0

Я делаю приложение Windows Form на C# и лучший элемент управления для того, что мне нужно, это элемент управления ActiveX (календарь). Проблема в том, что мне нужно перетащить, но для управления, который я использую, для него нет событий (только положительная вещь заключается в том, что у него есть свойство «AllowDrop»). (Контроль - Календарь Xtreme - Codejock)Управление ActiveX перетаскиванием в C#

+0

Если элемент управления ActiveX сам не реализует поддержку Drag + Drop, шоу прекращается, вы не можете его закрепить. –

ответ

0

Мне это как-то удалось. Использование ListBox и его событий MouseDown (для получения данных с помощью метода IndexFromPoint) и MouseUp (для вызова события DoubleClick в календаре).

private string name = string.Empty; 

    private void lstNames_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (lstNames.Items.Count == 0) 
      name = string.Empty; 
     else 
     { 
      int index = lstNames.IndexFromPoint(e.X, e.Y); 
      name = lstNames.Items[index].ToString(); 
     } 
    } 

    private void lstNames_MouseUp(object sender, MouseEventArgs e) 
    { 
     if (name != string.Empty) 
      CalendarControl_DblClick(name, null); 
    } 
Смежные вопросы