2017-03-21 2 views
0

Vous ne pouvez pas écrire un module d'extension Outlook qui manipule l'e-mail lorsque l'utilisateur souhaite enregistrer le fichier local sur le bureau par glisser-déposer.Manipuler des fichiers glissés à partir de l'application WinForm

Pour l'instant, je ne suis pas en mesure d'obtenir l'événement MouseDown de la fenêtre. Y at-il un message Windows spécifique que je peux observer?

Et y a-t-il un moyen de manipuler les données qui sont actuellement dans l'événement glisser?

Un grand merci pour votre aide!

Je l'ai déjà essayé

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml.Linq; 
using Outlook = Microsoft.Office.Interop.Outlook; 
using Office = Microsoft.Office.Core; 
using System.Windows.Forms; 

namespace OutlookAddIn1 
{ 
    public partial class ThisAddIn 
    { 

     Outlook.Explorer explorer; 

     private void ThisAddIn_Startup(object sender, System.EventArgs e) 
     { 

      explorer = Application.ActiveExplorer(); 

      explorer.BeforeItemCopy += new Outlook.ExplorerEvents_10_BeforeItemCopyEventHandler(Explorer_BeforeItemCopy); 

     } 

     private void OnDragEnter(object sender, System.Windows.Forms.DragEventArgs e) 
     { 
      MessageBox.Show("OnDragEnter"); 
     } 

     void Explorer_BeforeItemCopy(ref bool cancel) 
     { 
      MessageBox.Show("copied"); 
     } 
    } 
} 
+0

vous pouvez utiliser 'DragLeave' événement –

Répondre

0

Il n'y a pas besoin d'utiliser des messages Windows, ni événement MouseDown pour cela. Vous utilisez simplement le mauvais événement. Ce que vous devez gérer est:

  • DragEnter
  • DragOver
  • DragDrop
  • DragLeave

Voir cet exemple:

https://www.codeproject.com/articles/9017/a-simple-drag-and-drop-how-to-example

+0

Désolé mais je n'ai aucun formulaire derrière mon add-in. C'est juste un addin de perspectives qui devrait gérer le comportement de glisser dans la liste de courrier de Outlook (Application.ActiveExplorer();). – AppVault

+0

@AppVault Vous n'avez pas besoin de code derrière le fichier. Ajoutez simplement des gestionnaires d'événements, si nécessaire, dans le constructeur d'ajout et réagissez bien à ces événements. – Oscar

+0

comme ça? explorer.BeforeItemCopy + = new Outlook.ExplorerEvents_10_BeforeItemCopyEventHandler (Explorer_BeforeItemCopy); – AppVault