11-09-16, 08:33 PM
باختصار لدى textbox كبير يكتب بداخله نص كبير
عند الضغط على زر find تفتح هذه النافذه الموجودة فى الصورة والخاصه بالبحث:
***
بالنسبة لخاصية find once تعمل جيداً لإيجاد نتيجة واحدة مطابقة
***
أما find next فعند الضغط عليها لا ينتقل للنتيجة المطابقة التالية مباشرة
وإنما يقوم بعمل select للنتيجة المطابقة الأولى حتى أضغط مره أخرى فينتقل للتالية
مثلاً عندما أبحث عن كلمة how باستخدام زر find once ويجده ويحدده كما فى الصوره:
ثم أضغط على زر find next ليجد الكلمة المقابلة يستمر البرنامج فى تحديد نفس الكلمة
ولا ينتقل للتالية حتى أضغط على find next مرة أخرى ليحدد التالية كما فى الصورة:
لم اتمكن من تعديل كود البرنامج ليحقق هذا
***
وبالنسبة لخاصية find previous و find all لم أتمكن من التطبيق فى الكود
كود نافذة البحث فى البرنامج:
عند الضغط على زر find تفتح هذه النافذه الموجودة فى الصورة والخاصه بالبحث:
***
بالنسبة لخاصية find once تعمل جيداً لإيجاد نتيجة واحدة مطابقة
***
أما find next فعند الضغط عليها لا ينتقل للنتيجة المطابقة التالية مباشرة
وإنما يقوم بعمل select للنتيجة المطابقة الأولى حتى أضغط مره أخرى فينتقل للتالية
مثلاً عندما أبحث عن كلمة how باستخدام زر find once ويجده ويحدده كما فى الصوره:
ثم أضغط على زر find next ليجد الكلمة المقابلة يستمر البرنامج فى تحديد نفس الكلمة
ولا ينتقل للتالية حتى أضغط على find next مرة أخرى ليحدد التالية كما فى الصورة:
لم اتمكن من تعديل كود البرنامج ليحقق هذا
***
وبالنسبة لخاصية find previous و find all لم أتمكن من التطبيق فى الكود
كود نافذة البحث فى البرنامج:
كود :
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'button called (Find Once)
Dim a As String
Dim b As String
a = TextBox1.Text
b = InStr(Form1.TextBox1.Text, a)
If b Then
Form1.TextBox1.Focus()
Form1.TextBox1.SelectionStart = b - 1
Form1.TextBox1.SelectionLength = Len(a)
Else : MsgBox("No Text Found!")
End If
End Sub
Private TargetPosition As Integer
Private Sub FindText(ByVal start_at As Integer)
Dim pos As Integer
Dim target As String = TextBox1.Text
Dim text As String = Form1.TextBox1.Text
pos = InStr(start_at, text, target)
If pos > 0 Then
' We found it.
TargetPosition = pos
Form1.TextBox1.SelectionStart = TargetPosition - 1
Form1.TextBox1.SelectionLength = Len(target)
Form1.TextBox1.Focus()
Else
' We did not find it.
MsgBox("Not found.")
Form1.TextBox1.Focus()
End If
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
'button called (Find Next)
FindText(TargetPosition + 1)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
'button called (Find Previous)
FindText(TargetPosition - 2)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'button called (Find All)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
End Class