10-04-20, 04:37 AM
السلام عليكم
ما هي سبب هذه المشكلة وقت تنفيذ البرنامج
البرنامج يعمل بشكل طبيعي جدا في حالة الكتابة اليدوية من الكيبورد (لوحة المفاتيح) عند الضغط على زر التالي او السابق يتم النزول للسطر التالي والعكس في زر السابق
ولكن المشكلة اذا نسخت نص خارجي ولصقته في textbox او اختصار الصق (ctrl+ v) مثلاً مجموعة ارقام في اكسل و عند الضغط على زر التالي اخر سطر تضهر رسالة "حدد الرقم المراد نسخة" في حين انه محدد وعند الظغط على موافق يرجع التحديد من اول السطر من جديد وهكذا
هذه المشكلة تحدث فقط وقت النسخ واللصق من مستند نص او اكسل او اية بيانات لم تدخل كتابة يدوية على لوحة المفاتيح
وفي حال كتابة الارقام يدويا لم تظهر هذه الرسالة وعند الوصول لنهاية السطر الاخير ترجع من اول السطر من جديد دون اية مشاكل او رسائل ادخل الرقم
وممكن كود كتابة رقم السطر الذي يحدده الماوس مثلا عندنا 100 رقم وكان المحدد رقم 30ان يكتب رقم السطر في التحديد في label5 رقم 30
مرفق صورة توضيحية + الكود المستخدم
ارجو ان تكون المشكلة واضحة وان يوجد لها حل
ما هي سبب هذه المشكلة وقت تنفيذ البرنامج
البرنامج يعمل بشكل طبيعي جدا في حالة الكتابة اليدوية من الكيبورد (لوحة المفاتيح) عند الضغط على زر التالي او السابق يتم النزول للسطر التالي والعكس في زر السابق
ولكن المشكلة اذا نسخت نص خارجي ولصقته في textbox او اختصار الصق (ctrl+ v) مثلاً مجموعة ارقام في اكسل و عند الضغط على زر التالي اخر سطر تضهر رسالة "حدد الرقم المراد نسخة" في حين انه محدد وعند الظغط على موافق يرجع التحديد من اول السطر من جديد وهكذا
هذه المشكلة تحدث فقط وقت النسخ واللصق من مستند نص او اكسل او اية بيانات لم تدخل كتابة يدوية على لوحة المفاتيح
وفي حال كتابة الارقام يدويا لم تظهر هذه الرسالة وعند الوصول لنهاية السطر الاخير ترجع من اول السطر من جديد دون اية مشاكل او رسائل ادخل الرقم
وممكن كود كتابة رقم السطر الذي يحدده الماوس مثلا عندنا 100 رقم وكان المحدد رقم 30ان يكتب رقم السطر في التحديد في label5 رقم 30
مرفق صورة توضيحية + الكود المستخدم
ارجو ان تكون المشكلة واضحة وان يوجد لها حل
كود :
Public Class Form1
Dim i As Integer = -1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TextBox2.Text = System.Text.RegularExpressions.Regex.Replace(TextBox2.Text, "\r\s+", vbNewLine)
TextBox2.Text = System.Text.RegularExpressions.Regex.Replace(TextBox2.Text, "(^|$)\s+", "")
'التالي
If i = TextBox2.Lines.Count - 1 Then i = -1
i += 1
Label1.Text = TextBox2.Lines(i)
If Label1.Text.Trim = Nothing Then MessageBox.Show("حدد النص المراد نسخة") : Exit Sub
'If TextBox2.SelectedText.Length = 0 Then MessageBox.Show("حدد الرقم المراد نسخة")
Clipboard.SetText(Label1.Text)
My.Computer.Clipboard.SetText(Label1.Text)
TextBox2.Select(TextBox2.GetFirstCharIndexFromLine(i), Label1.Text.Length)
End Sub