تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سحب والافلات.Drag and Drop.مساعدة
#1
سلام عليكم
اريد من حضرتكم
كود لسحب مستند نصي من اي مكان في الكمبيوتر
و
افلاته في منطقة

Button
وبحيث تنزل محتويات المستند النصي
في Textbox1 
وشكرا
الرد
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

موضوع جميع
فقط لاتمام الامر ركز خطوة خطوة لما ساقوم بشرحه

أولاً قم بادراج عدد 1 TextBox وعدد 1 Button
الان تعال على TextBox فى الخيارات ستجد
Multiline اجعله True

الان تاتى على Button فى الخيارات ستجد كلاً من 
AllowDrop اجعله True
Text اجعله جلب ملف... ( ضع الاسم المراد [ اختياري ] )

الان ناتى على Button وتفعل حدث DragEnter 

وتضع الكود التالى
كود :
       If e.Data.GetDataPresent(DataFormats.FileDrop) Then
           e.Effect = DragDropEffects.Copy
       End If

الان تاتى على Button وتفعل حدث DragDrop

وتضع الكود التالى
كود :
       For Each path In e.Data.GetData(DataFormats.FileDrop)
           If System.IO.Path.GetExtension(path) = ".txt" Then
               Dim FileSR As IO.StreamReader
               FileSR = System.IO.File.OpenText(path)
               TextBox1.Text = FileSR.ReadToEnd()
               FileSR.Close()
           Else
               MsgBox("عفواً يجب ان يكون الملف بصيغة txt.")
           End If
       Next
       Button1.Text = "جلب ملف..."

الان تاتى على Button وتفعل حدث DragOver

وتضع الكود التالى
كود :
       Button1.Text = "إسقاط ملف..."

والان تاتى على Button وتفعل حدث DragLeave

وتضع الكود التالى
كود :
       Button1.Text = "جلب ملف..."

الى هنا السحب والاسقاط يعمل مباشراً على الزر
وبمجرد اسقاط الملف على Button ستجد تم عرض محتوى الملف فى TextBox

الان حتى يكتمل جمالية الامر
تعال على Button وفى حدث Click

قم باستخدام الكود التالى
كود :
       Dim OFD As New OpenFileDialog
       OFD.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
       OFD.Filter = "txt files (*.txt)|*.txt"
       OFD.FilterIndex = 1
       OFD.RestoreDirectory = True
       If OFD.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
           If System.IO.Path.GetExtension(OFD.FileName) = ".txt" Then
               Dim FileSR As IO.StreamReader
               FileSR = System.IO.File.OpenText(OFD.FileName)
               TextBox1.Text = FileSR.ReadToEnd()
               FileSR.Close()
           Else
               MsgBox("عفواً يجب ان يكون الملف بصيغة txt.")
           End If
       End If
الان اصبح الـ Button مفعل ايضاً اختيار الملف من على الجهاز
فاصبح السحب والافلات + اختيار الملف على نفس الـ Button
على ما اعتقد ان الكود لا يحتاج الى شرح
لبساطة اسطر الكود بكل حدث

بالنهاية اتمنى ان يكون الشرح بسيط ووفى لما تريده واكثر

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: dametucorazon , ابو روضة , حريف برمجة
#3
رائع بارك الله في جهودك استمررررر♥
الرد
تم الشكر بواسطة: elgokr
#4
لى ولك وللجميع بامر الله

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: DK-x
#5
ماشاء الله عليك أخى جوكر فنان ..
لو سمحت أخى حينما فعلت هذا وسحبت مستند نصى به حروف عربية بتظهر لى مشوشة كلها
وبتظهر بلغة غريبة جدا فهل هناك حل
الرد
تم الشكر بواسطة: elgokr
#6
(22-04-19, 12:30 AM)ابو روضة كتب :
ماشاء الله عليك أخى جوكر فنان ..
لو سمحت أخى حينما فعلت هذا وسحبت مستند نصى به حروف عربية بتظهر لى مشوشة كلها
وبتظهر بلغة غريبة جدا فهل هناك حل


تسلم اخى ابو روضة

يرجع الامر هنا لان محتوى الملف عربي
ولكن الملف عند الحفظ تم حفظه على 
PHP كود :
EncodingANSI 

ولحل المشكلة يفضل اعادة حفظ الملف ليكون
PHP كود :
EncodingUTF-

وكذلك يمكنك تعديل الكود فى الشرح على هذا الجزء
كود :
               Dim FileSR As IO.StreamReader
               FileSR = System.IO.File.OpenText(OFD.FileName)
               TextBox1.Text = FileSR.ReadToEnd()
               FileSR.Close()

ليصبح بهذا الشكل
كود :
               Dim FileSR As IO.StreamReader = New IO.StreamReader(OFD.FileName, System.Text.Encoding.GetEncoding("windows-1256"))
               TextBox1.Text = FileSR.ReadToEnd()
               FileSR.Close()

يمكنك تعديل windows-1256 الى 1256 فقط يمكنك مراجعة الرابط هنا للمزيد

أو بهذا الشكل
كود :
               Dim FileSR As IO.StreamReader = New IO.StreamReader(OFD.FileName, System.Text.Encoding.Default)
               TextBox1.Text = FileSR.ReadToEnd()
               FileSR.Close()

مع تغيير Default الى 
كود :
ASCII - Unicode - UTF32 - UTF7 - UTF8

ويفضل ان يكون على الافتراضي لان بكلا الحالات
ستحتاج على تعديل حفظ الملف كما تم ذكره بالاعلى

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: ابو روضة , ابو روضة , DK-x
#7
(22-04-19, 01:23 AM)elgokr كتب :
(22-04-19, 12:30 AM)ابو روضة كتب :
ماشاء الله عليك أخى جوكر فنان ..
لو سمحت أخى حينما فعلت هذا وسحبت مستند نصى به حروف عربية بتظهر لى مشوشة كلها
وبتظهر بلغة غريبة جدا فهل هناك حل


تسلم اخى ابو روضة

يرجع الامر هنا لان محتوى الملف عربي
ولكن الملف عند الحفظ تم حفظه على 
PHP كود :
EncodingANSI 

ولحل المشكلة يفضل اعادة حفظ الملف ليكون
PHP كود :
EncodingUTF-

وكذلك يمكنك تعديل الكود فى الشرح على هذا الجزء
كود :
               Dim FileSR As IO.StreamReader
               FileSR = System.IO.File.OpenText(OFD.FileName)
               TextBox1.Text = FileSR.ReadToEnd()
               FileSR.Close()

ليصبح بهذا الشكل
كود :
               Dim FileSR As IO.StreamReader = New IO.StreamReader(OFD.FileName, System.Text.Encoding.GetEncoding("windows-1256"))
               TextBox1.Text = FileSR.ReadToEnd()
               FileSR.Close()

يمكنك تعديل windows-1256 الى 1256 فقط يمكنك مراجعة الرابط هنا للمزيد

أو بهذا الشكل
كود :
               Dim FileSR As IO.StreamReader = New IO.StreamReader(OFD.FileName, System.Text.Encoding.Default)
               TextBox1.Text = FileSR.ReadToEnd()
               FileSR.Close()

مع تغيير Default الى 
كود :
ASCII - Unicode - UTF32 - UTF7 - UTF8

ويفضل ان يكون على الافتراضي لان بكلا الحالات
ستحتاج على تعديل حفظ الملف كما تم ذكره بالاعلى

تحياتى لك
وتمنياتى لك التوفيق

تسلم من كل شر أخى....ربنا يزيدك من علمه
الرد
تم الشكر بواسطة: elgokr
#8
لى ولك وللجميع بامر الله

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: ابو روضة , DK-x



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم