Как найти идентификатор перетаскиваемого элемента управления - PullRequest
0 голосов
/ 20 марта 2012

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

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

Ответы [ 3 ]

0 голосов
/ 20 марта 2012

Предполагая, что вы провели исследование, чтобы выяснить, как выполнять перетаскивание элементов управления на форме (и ваш вопрос действительно ограничен только заголовком вопроса: Как найти идентификатор перетаскиваемого элемента управления ) большинство стандартных событий WinForm предоставляют параметр (object sender), который представляет элемент управления, используемый для вызова события.Вы должны иметь возможность получить его идентификатор, как обычно.

Очевидно, что не всегда очевидно, как последовательно получить идентификатор из элемента управления WinForm.К счастью, у Брайана МакМастера есть (довольно старый , означающий только возможно ) сообщение в блоге MSDN для выполнения именно этого.В .NET 3.5 я бы, вероятно, использовал этот старый пост в качестве начала метода расширения для управляющих объектов.

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

0 голосов
/ 20 марта 2012

извлечение System.Windows.Forms.DragEventArgs e

void MyControl_DragDrop(object sender, DragEventArgs e)
{
    var controlBeingDrag = (Label)sender; // cast from object
    string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false);
}

событие перетаскивания элемента управления отправляет отправитель объекта

0 голосов
/ 20 марта 2012

вы можете использовать Drag_Enter и DragOVer Events, чтобы достичь цели DragEnter Doucmentation и DragOver Documentation

альтернативно вы можете проверить следующие уроки

...