PDA

View Full Version : جستجو در TextBox



asghar2008
پنج شنبه 14 دی 1391, 11:33 صبح
سلام

دوستان گرامی میخوام قسمت Find برنامه NotPad رو تو برنامم پیاده سازی کنم.کدی که من نوشتم فقط اولین کلمه پیدا شده رو نشون میده و بقیه متن رو جستجو نمیکنه.
من از Instr استفاده کردم.میشه از IndexOf استفاده کرد؟ ممنون میشم راهنمایی کنید.

SHD.NET
پنج شنبه 14 دی 1391, 13:12 عصر
دادش ببین این بدردت می خوره . الان نوشتمش

ghayour
پنج شنبه 14 دی 1391, 13:58 عصر
این برنامه‌ای که نوشتید به نظر من جالب نیست و مخصوصا اینکه کلمه رو داخل ریچ تکست باکس نشون نمیده. من از خاصیت find استفاده کردم اما همین مشکل بود.
Private Sub btnFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFind.Click
Dim i As Integer
i = RichTextBox1.Find(txtSearch.Text, i, RichTextBoxFinds.None)
i +=
RichTextBox1.HideSelection = False
End Sub

asghar2008
پنج شنبه 14 دی 1391, 14:21 عصر
دادش ببین این بدردت می خوره . الان نوشتمش
سلام
ممنون دوست عزیز

همینه ،اما من نمیخوام تو لیست باکس بریزه. می خوام تو همون Richtext انتخاب (های لایت )بشه.

کد که نوشتم اینه :
Dim a, b As String

a = txtfind.Text
b = InStr(textmatn.Text, a)
If b Then
textmatn.Focus()
textmatn.SelectionStart = b - 1
textmatn.SelectionLength = Len(a)
Else
MsgBox("پیدا نشد", , "جستجو")
End If
فقط یه کلمه رو انتخاب میکنه .باید با زدن find next بقیه متن رو جستجو کنه واگه پیدا شد اونو انتخاب کنه.

بازم ممنون

h_a_m_i_d
پنج شنبه 14 دی 1391, 14:52 عصر
با سلام دوست عزیز
کد اصلیتو با این کد عوض کن
Dim a, b As String

a = txtfind.Text
b = InStr(c, textmatn.Text, a)
c = b + 1
If b Then
textmatn.Focus()
textmatn.SelectionStart = b - 1
textmatn.SelectionLength = Len(a)
Else
MsgBox("پیدا نشد", , "جستجو")
End If
End Sub

بعد تو قسمت جنرال فرمت هم این رو اضافه کن
dim c as integer=1
بعدش هم از کدت لذت ببر
موفق باشید

asghar2008
پنج شنبه 14 دی 1391, 15:05 عصر
با سلام دوست عزیز
کد اصلیتو با این کد عوض کن
Dim a, b As String

a = txtfind.Text
b = InStr(c, textmatn.Text, a)
c = b + 1
If b Then
textmatn.Focus()
textmatn.SelectionStart = b - 1
textmatn.SelectionLength = Len(a)
Else
MsgBox("پیدا نشد", , "جستجو")
End If
End Sub

بعد تو قسمت جنرال فرمت هم این رو اضافه کن
dim c as integer=1
بعدش هم از کدت لذت ببر
موفق باشید

سلام

مرسی دوست عزیز ،

آرگومان اول(c) برای مکان شروع جستجو هستش. درسته ؟

یه سوال دیگه :اگه بخوایم به یه خط(line) مشخص در TextBox بریم باید از Function ، زیر استفاده کنیم:
Textbox1.GetLineFromCharIndex(2)

(2) شماره خط.

یا تابع دیگه ای داره ؟

h_a_m_i_d
پنج شنبه 14 دی 1391, 17:42 عصر
سلام

مرسی دوست عزیز ،

آرگومان اول(c) برای مکان شروع جستجو هستش. درسته ؟

یه سوال دیگه :اگه بخوایم به یه خط(line) مشخص در TextBox بریم باید از Function ، زیر استفاده کنیم:
Textbox1.GetLineFromCharIndex(2)

(2) شماره خط.

یا تابع دیگه ای داره ؟

بله دوست عزیز c برای مکان شروع هست و هربار که جستجو تکمیل شد مکان ان را یکی جلوتر از مکان شروع کلمه مورد جستجو قرار میده
در رابطه به سوال دوم
textmatn.Lines(c).ToString
پارامتر c که زدم از ضفر شروع میشه
موفق باشید