ميزة السحب والإفلات للرسائل من Outlook متضمنة في الإصدارات الأخيرة من Aspose.Network مما يمكن المطورين من إنشاء عناصر واجهة رسومية UI تستجيب لأحدات السحب والإفلات .
المثال التاي يوضح كيفية إنشاء Panel بحيث يستطيع المستخدم أن يسحب الرسالة من Outlook ويرميها به وبالتالي يستطيع البرنامج حفظها على شكل ملفات بالامتداد msg.
الخطوة 1: قم بإنشاء تطبيق Windows .
الخطوة 2:إضف reference الى Aspose.Network .

قم بالاستعراض للملف Aspose.Network.dll وAspose.Windows.Forms.dll وقم بالضغط على موافق .

الخطوة 3 : إنشأ عنصر الواجهة الرسومية الخاص بك ,نقوم بإنشاء Panel في هذا المثال .إضغط بالزر الأيمكن على مشروعك واختر "Add > new item", قم بإنشاء فئة جديدة Class وتسميتها MyPanel :

قم بجعل MyPanel كفئة فرعية subclass لـWindows.Form.Panel وقم بإضافة خاصية Aspose.Windows.Forms.FileDropTargetManager الى MyPanel :
[C#]
using System;
using System.Collections.Generic;
using System.Text;
namespace WindowsApplication1
{
public class MyPanel:System.Windows.Forms.Panel
{
private Aspose.Windows.Forms.FileDropTargetManager m;
}
}[VB.NET] Public Class MyPanel Inherits System.Windows.Forms.Panel Private m As Aspose.Windows.Forms.FileDropTargetManager End Class
الخطوة 4 : قم بعمل Override OnHandleCreated ودالة OnHandleDestroyed لتسجيل MyPanel باستخدام Aspose.WindowsForms.FileDropTargetManager
[C#]
public class MyPanel:System.Windows.Forms.Panel
{
//hook up
protected override void OnHandleCreated(EventArgs e)
{
this.AllowDrop = true;
this.m = new Aspose.Windows.Forms.FileDropTargetManager(this);
this.m.EnsureRegistered(this);
base.OnHandleCreated(e);
}
//unhook
protected override void OnHandleDestroyed(EventArgs e)
{
this.m.EnsureUnRegistered(this);
base.OnHandleDestroyed(e);
}
private Aspose.Windows.Forms.FileDropTargetManager m;
}[VB.NET] Public Class MyPanel Inherits System.Windows.Forms.Panel 'hook up Protected Overrides Sub OnHandleCreated(ByVal e As System.EventArgs) Me.AllowDrop = True m = New Aspose.Windows.Forms.FileDropTargetManager(Me) m.EnsureRegistered(Me) MyBase.OnHandleCreated(e) End Sub 'un hook Protected Overrides Sub OnHandleDestroyed(ByVal e As System.EventArgs) m.EnsureUnRegistered(Me) MyBase.OnHandleDestroyed(e) End Sub Private m As Aspose.Windows.Forms.FileDropTargetManager End Class
الخطوة 5 : قم ببناء المشروع .MyPanel جاهز للاستخدام الان , هذا المكون سيكون قادراً على قبول أحداث السحب والإفلات من Outlook , قم بفتح toolbox panel وقم بسحب وافلات MyPanel داخل فورم تطبيق ويندوز .

الخطوة 6 : قم بإضافة event handler الى MyPanel حدث DragDrop (لا تنسى أن تقوم بضبط خاصةAllowDrop على true من الخصائص الخاصة بالـ Panel) ثم ضبط الخلفية باللون الذي تريده .

الخطوة 7 : تطبيق DragDrop event handler , سنقوم ببساطة بحفظ هذه الرسائل من Oulook بشكل ملفات msg. .في البدأ نقوم بعمل cast لـDragEventArgs الى Aspose.Windows.Forms.FileDragEventArgs , والتي تحتوي على خاصة مصفوفة (ملفات) تستند على الرسائل المفلتة من المستخدم .اذا قام المستخدم بسحب رسائل متعددة من Outlook وإفلاتها في MyPanel, الخاصة Files.Count ستحتوي عدد الرسائل,والخاصةFiles[ i ]تحوي كل الرسائل .
[C#]
private void myPanel1_DragDrop(object sender, DragEventArgs e)
{
Aspose.Windows.Forms.FileDragEventArgs args;
args = (Aspose.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());
}
}
}
}
}[VB.NET]
Private Sub MyPanel1_DragDrop(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.DragEventArgs) Handles MyPanel1.DragDrop
Dim args As Aspose.Windows.Forms.FileDragEventArgs
args = TryCast(e, Aspose.Windows.Forms.FileDragEventArgs)
If (args IsNot Nothing) Then
If ((args.Files IsNot Nothing) AndAlso (args.Files.Count > 0)) Then
For i As Integer = 0 To args.Files.Count - 1
Dim saveDialog As New SaveFileDialog
saveDialog.FileName = args.Files(i).FileName
saveDialog.ShowDialog(Me)
Try
Dim fs As System.IO.FileStream = New
System.IO.FileStream(saveDialog.FileName, System.IO.FileMode.CreateNew)
args.Files(i).Save(fs)
fs.Close()
MessageBox.Show("Save Success." & args.Files(i).FileName)
Catch ex As Exception
MessageBox.Show("Save Failed:" & ex.Message)
End Try
Next
End If
End If
End Subالخطوة 8 : قم بتشغيل التطبيق وإختباره !.ستكون الان قادراً على سحب الرسائل من outlook ورميها في تطبيقك ,وسينبهك التطبيق على حفظ هذه الرسائل على شكل ملفات msg.

