В IE, если перетащить значок рядом с URL-адресом в адресной строке на рабочий стол, на рабочем столе появится ярлык для URL-адреса.Это также работает для перетаскивания его в WordPad и Word.
Однако я не могу заставить его работать в моем приложении C # с RichTextBox.Он работает с обычным TextBox.
Я убедился, что в IE включена функция перетаскивания.(Я использую IE11)
IE не работает в защищенном режиме.Но на всякий случай я попытался сделать запись в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Low Rights \ DragDrop (и 64-битный ключ), как указано здесь .
Не имеет значения, открываю ли я IE & MyApp как пользователь или как администратор, и у меня отключено UAC, поэтому я не должен иметь ничего общего с this .
Вот мой DragEnter ()
private void TXT_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
if (e.Data.GetDataPresent("FileDrop", false))
{
e.Effect = DragDropEffects.Link;
}
else if (e.Data.GetDataPresent("UniformResourceLocator", false))
{
e.Effect = DragDropEffects.Copy;
}
else e.Effect = DragDropEffects.None;
}
Когда я перетаскиваю ссылку IE в мой RichTextBox, я попадаю в свой DragEnter и попадаю в кейс "UniformResourceLocator".
С обычным TextBox e.AllowedEffect = Link, но с RichTextBox в качестве цели e.AllowedEffect = Copy |Переместить |Прокрутка
И независимо от того, что я установил для e.Effect, курсор никогда не изменится, и DragDrop () никогда не будет вызван.Я пытался e.Effect = DragDropEffects.Copy и .Link и .Move и .Scroll и даже e.Effect = e.AllowedEffect
Любая помощь или возможные обходные пути были бы хорошими!