جامعة أهلاً عرب

العودة   جامعة أهلاً عرب > كلية Microsoft.Net و Visual Studio > قسم لغة Microsoft Visual C#.NET

قسم لغة Microsoft Visual C#.NET هذا القسم مخصص للمواضيع والاستفسارات حول لغة #C الجديدة والقوية من مايكروسوفت والحائزة على شهرة عالمية كبيرة تنافس Visual Basic .net

آخر 10 مشاركات UTM University ولا تتردد بالسؤال ( آخر مشاركة : mustafa usama - مشاركات : 180 - )           »          " هدية " برنامج متابعة المراجعين بالاكسيل ( آخر مشاركة : محمد فتحى شحاته - مشاركات : 29 - )           »          برنامج الأصيل الذهبي للمحاسبة و المخازن . ( آخر مشاركة : عبدالهادىالمصرى - مشاركات : 37 - )           »          مشكلة فى الويندوز أرجو أن أجد لديكم الحل ( آخر مشاركة : shukiry - مشاركات : 2 - )           »          ابغى حد يساعدني في تحليل مشورع فندق بليزززز لاتتاخرو ( آخر مشاركة : shukiry - مشاركات : 4 - )           »          مشكلة في طباعة التقرير ( مشاركات : 0 - )           »          لأول مرة (( موسوعة المبرمج العربي )) أكواد - شروحات - كتب - دروس - مستلزمات برمجية ( آخر مشاركة : المخزومي - مشاركات : 41 - )           »          هل تحب الأفلام التي تتناول السحر والسحرة؟ ( آخر مشاركة : bas432b - مشاركات : 8 - )           »          Grouping data in gridview ( مشاركات : 2 - )           »          نفسي اتعلم طريقة الربط الاكسس بالفيجوال 1 ( آخر مشاركة : arzaq - مشاركات : 11 - )

إنشاء موضوع جديد  إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
قديم 2008-01-20, 05:55 PM   #1 (permalink)
عميد كلية
 
الصورة الرمزية عبد الكريم كنعان
 
الجنس: ذكـــر
الجنسية: سوريا
بلد الإقامة: سوريا
الوظيفة: تكنلوجيا المعلومات - برمجة
المؤهل الدراسي: البكلوريوس
التخصص العلمي: تكنلوجيا المعلومات - هندسة حاسب آلي
كيف عرفت عن موقعنا: اعلان عن موقعكم في موقع اخر
تاريخ التسجيل: Aug 2007
المشاركات: 408
شكراً: 34
تم شكره 8 مرة في 5 مشاركة
معدل تقييم المستوى:2 عبد الكريم كنعان 50- اعتقد انك ستكون مشهوراً في الفترة القادمة.

إرسال رسالة عبر مراسل MSN إلى عبد الكريم كنعان
كيفية إجراء عملية السحب والإفلات Drag And Drop

هل تعلم ان في هذه المقالة سوف نتناول ليس طعاما وانما موضوعا هاما، ألا هو إمكانية السحب والافلات في الادوات، ربما لم تفهم شيئا لذلك دعني أطرح عليك السؤال التالي:
اريد تصميم واجهة تحتوي على قائمة ببعض الاسماء (ربما الاصدقاء أو ما شابه)، وايضا إمكانية كتابة نص ما!!
اي بمعنى آخر اريد ListBox كما قلت تحتوي على قائمة من اسماء الاصدقاء وايضا الاداة RichTextBox التي تسمح لي بكتابة نص معين، والان كل ما اريده أن أقوم بسحب أحد الاسماء من ListBox ووضعه في RichTextBox، ولتحقيق ذلك فنحن نحتاج إلى ما يعرف بتقنية Drag And Drop.
دعنا من خلال تنفيذ المثال السابق ذكره التعرف على سهولة تحقيق ذلك، بعد أن تقوم بإنشاء مشروع جديد من نوع Windows Application وضع العناصر السالف ذكرها لتصبح الفورم على الشكل التالي:


والان قم من خلال الحدث Load الخاصة بالفورم بإضافة بعض اسماء اصدقاءك، و من خلال نفس الحدث أعطي الخاصة AllowDrop الخاصة بالاداة richTextBox1 القيمة true ليصبح الكود على الشكل التالي: مثلا:

كود:
private void Form1_Load(object sender, EventArgs e) { richTextBox1.AllowDrop = true;
listBox1.Items.Add("Abdulkarim Kanaan"); listBox1.Items.Add("Fadi"); listBox1.Items.Add("Rami"); listBox1.Items.Add("Turki"); listBox1.Items.Add("Ismaeel"); }
والان بعد ذلك اختر الحدث MouseDown الخاص بالاداة listBox1، وقم بكتابة ما يلي:


كود:
private void listBox1_MouseDown(object sender, MouseEventArgs e) { listBox1.DoDragDrop(listBox1.SelectedItem, DragDropEffects.All); }
حيث قمنا باستدعاء التابع DoDragDrop التابع للاداة listBox1، مع تحديد القيمة التي اجرينا عليها عملية السحب، بالاضافة إلى نوع عملية السحب هل هي عملية نقل Move أم نسخ Copy أم كافة العمليات All، طبعا هنا يظهر من الكود اننا قد اخترنا عملية النسخ Copy.
والان هناك حدثان هامان للاداة richTextBox1 سوف نقوم باستخدامهما والا وهما DragEnter و DragDrop.
حيث ان الحدث DragEnter: يقع عندما عندما يدخل مؤشر الفارة إلى الاداة richTextBox1 طبعا بعد إجراء عملية السحب
أما الحدث الثاني DragDrop: يقع هذا الحدث عندما نقوم بعملية الافلات على العنصر richTextBox1.
الكود التالي من اجل الحث DragEnter:


كود:
void richTextBox1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.Text)) { e.Effect = DragDropEffects.Copy; } else { e.Effect = DragDropEffects.None; } }
طبعا من خلال التابع GetDataPresent يمكننا من فحص نوع البيانات المسحوبه هل هي نص أم صورة أم ....
اما الكود المطبق على الحدث DragDrop فهو:


كود:
void richTextBox1_DragDrop(object sender, DragEventArgs e)
{ int i; String s; // Get start position to drop the text. i = richTextBox1.SelectionStart; s = richTextBox1.Text.Substring(i); richTextBox1.Text = richTextBox1.Text.Substring(0, i); // Drop the text on to the RichTextBox. richTextBox1.Text = richTextBox1.Text + e.Data.GetData(DataFormats.Text).ToString(); richTextBox1.Text = richTextBox1.Text + s; }
طبعا ما فعلناه هنا عمايات بسيطة من اجل كتابة ما تم افلاته في المكان المحدد من النص أي ما قمنا به في المختصر المفيد هو عملية حشر الاسم المسحوب من قائمة الاسماء في المكان المجدد من النص الموجود داخل الاداة richTextBox1.
طبعا بقي شيء واحد واخير أحب التنويه علي أن الاحداث آنفة الذكر DragEnter و DragEnter لن تظهر لك في قائمة أحدث الاداة richTextBox1، لذلك يجب عليك كتابتها يدويا وسوف أقوم بكتابتها في الحدث الخاص بالفورم ليصبح الكود السابق على النحو التالي:

كود:
private void Form1_Load(object sender, EventArgs e) { richTextBox1.AllowDrop = true; listBox1.Items.Add("Abdulkarim Kanaan"); listBox1.Items.Add("Fadi"); listBox1.Items.Add("Rami"); listBox1.Items.Add("Turki"); listBox1.Items.Add("Ismaeel"); richTextBox1.DragEnter += new DragEventHandler(richTextBox1_DragEnter); richTextBox1.DragDrop += new DragEventHandler(richTextBox1_DragDrop); }
وشكرا
الصور المرفقة
نوع الملف: jpg 6.jpg‏ (17.9 كيلوبايت, المشاهدات 29)
الملفات المرفقة
نوع الملف: zip DragAndDrop.zip‏ (38.1 كيلوبايت, المشاهدات 19)
عبد الكريم كنعان غير متواجد حالياً   رد مع اقتباس
مرحبا عزيزي الزائر
لمشاهدة باقي ردود هذا الموضوع, من فضلك قم بتسجيل الدخول او اضغط هنا للتسجيل.
إنشاء موضوع جديد  إضافة رد

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة
الانتقال السريع


الساعة الآن 02:12 PM.


Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd
إن الكتابات المنشورة في الجامعة ملك لأصحابها و هي لا تعبر عن وجهة نظر إدارة الجامعة


Search Engine Friendly URLs by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53