Usando o Controle Aspose Outlook para Arrastar e Soltar Mensagens do Outlook em Windows Forms

Contents
[ ]

Aspose.Email suporta o recurso de arrastar e soltar do Microsoft Outlook. Isso permite que os desenvolvedores criem facilmente elementos de UI que respondem a eventos de arrastar e soltar do Outlook. O seguinte exemplo mostra como criar um painel no qual os usuários podem arrastar uma mensagem do Outlook e soltá-la, e o programa para salvar mensagens em arquivos MSG. O seguinte snippet de código mostra como configurar um controle Aspose Outlook que pode receber mensagens do Microsoft Outlook arrastadas.

  • Crie um aplicativo de formulário do Windows.
  • Adicione uma referência à biblioteca Aspose.Email.
  • Navegue até o Aspose.Email.dll e clique em OK.

O elemento de UI criado neste exemplo é um painel. Para criar um painel:

  • Clique com o botão direito do mouse em seu projeto no painel de solução e escolha Adicionar e depois Novo item no menu.
  • Crie uma classe chamada MyPanel:
  • Deixe MyPanel ser uma subclasse de System.Windows.Form.Panel, e adicione uma propriedade Aspose.Email.Windows.Forms.FileDropTargetManager a MyPanel:
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
class MyPanel : System.Windows.Forms.Panel
{
private Aspose.Email.Windows.Forms.FileDropTargetManager manager;
// Hook up
protected override void OnHandleCreated(EventArgs e)
{
this.manager = new Aspose.Email.Windows.Forms.FileDropTargetManager(this);
this.manager.EnsureRegistered(this);
base.OnHandleCreated(e);
}
// Unhook
protected override void OnHandleDestroyed(EventArgs e)
{
this.manager.EnsureUnRegistered(this);
base.OnHandleDestroyed(e);
}
}
  • Substitua os métodos OnHandleCreated e OnHandleDestroyed para registrar MyPanel usando Aspose.Email.Windows.Forms.FileDropTargetManager:
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
class MyPanel : System.Windows.Forms.Panel
{
private Aspose.Email.Windows.Forms.FileDropTargetManager manager;
// Hook up
protected override void OnHandleCreated(EventArgs e)
{
this.manager = new Aspose.Email.Windows.Forms.FileDropTargetManager(this);
this.manager.EnsureRegistered(this);
base.OnHandleCreated(e);
}
// Unhook
protected override void OnHandleDestroyed(EventArgs e)
{
this.manager.EnsureUnRegistered(this);
base.OnHandleDestroyed(e);
}
}
  • Compile o projeto.

MyPanel está pronto para uso. Este painel aceita eventos de arrastar e soltar do Outlook.

  • Abra seu painel de ferramentas e arraste MyPanel para o seu formulário do Windows:
todo:image_alt_text
  • Adicione um manipulador de eventos ao evento DragDrop de MyPanel. (Não se esqueça de definir a propriedade AllowDrop como verdadeira no painel de propriedades e alterar a propriedade BackColor de MyPanel para a sua favorita.)
todo:image_alt_text
  • Adicione a seguinte linha no método InitializeComponent() do Form principal:
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
this.myPanel1.AllowDrop = true;
  • Implemente o manipulador de eventos DragDrop para salvar as mensagens arrastadas do Outlook em arquivos MSG.
  • Lance DragEventArgs para Aspose.Email.Windows.Forms.FileDragEventArgs, que contém uma propriedade de array Files que representa o alvo de arrastar do usuário.

Se um usuário arrastar várias mensagens do Outlook e soltá-las em MyPanel, Files.Count é o número de mensagens, e Files itera para cada mensagem.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
private void myPanel1_DragDrop(object sender, DragEventArgs e)
{
Aspose.Email.Windows.Forms.FileDragEventArgs args;
args = (Aspose.Email.Windows.Forms.FileDragEventArgs)e;
if (args != null && args.Files.Count > 0)
{
for (int i = 0; i < args.Files.Count; i++)
{
SaveFileDialog dialog = new SaveFileDialog();
dialog.FileName = args.Files[i].FileName;
if (dialog.ShowDialog() == DialogResult.OK)
{
try
{
System.IO.FileStream output;
output = new System.IO.FileStream(dialog.FileName, System.IO.FileMode.CreateNew);
args.Files[i].Save(output);
MessageBox.Show("Save success:" + dialog.FileName);
}
catch (Exception ex)
{
MessageBox.Show("Save failed:" + ex.ToString());
}
}
}
}
}
  • Execute o projeto e teste-o.

Agora você pode arrastar mensagens do Outlook e soltá-las em sua aplicação. O aplicativo solicita que você salve essas mensagens em arquivos MSG.