Перетащите URL-адрес InternetExplorer на C # RichTextBox - PullRequest
0 голосов
/ 07 октября 2018

В 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

Любая помощь или возможные обходные пути были бы хорошими!

...