HaKaCo
یک شنبه 02 تیر 1387, 01:38 صبح
باسلام
خسته نباشيد
من در برنامه اي كه دارم به انجام مي رسونم
مي خواهم مثل ورد فايلي متني را بياورم و پس از اصلاح ذخيره اش كنم
مشكلم اينجاست كه مي خواهم مثل نرم افزار ورد يك قسمت find و replace داشته باشد
find به اولين كلمه مشابه textbox1 كه رسيد هايلايدش مي كند و find next كلمه بعدي را و اگر در آن لحظه دكمه replace را زدم بايد كلمه موجود در textbox2 جايگزين متن هايلايد شده شود.
اينكه چطور در textbox عمل جستجو و جستجوي بعدي صورت مي گيرد من را كلافه كرده است
ممنون مي شم اگه راهنماييم كنيد.
همه آروزهاي مني كاش يكي از آرزوهاي تو باشم
Alirezanet
یک شنبه 02 تیر 1387, 02:52 صبح
باسلام
خسته نباشيد
من در برنامه اي كه دارم به انجام مي رسونم
مي خواهم مثل ورد فايلي متني را بياورم و پس از اصلاح ذخيره اش كنم
مشكلم اينجاست كه مي خواهم مثل نرم افزار ورد يك قسمت find و replace داشته باشد
find به اولين كلمه مشابه textbox1 كه رسيد هايلايدش مي كند و find next كلمه بعدي را و اگر در آن لحظه دكمه replace را زدم بايد كلمه موجود در textbox2 جايگزين متن هايلايد شده شود.
اينكه چطور در textbox عمل جستجو و جستجوي بعدي صورت مي گيرد من را كلافه كرده است
ممنون مي شم اگه راهنماييم كنيد.
همه آروزهاي مني كاش يكي از آرزوهاي تو باشم
سلام
به جای تکست باکس از یه RichTextBox استفاده کن خیلی راحت میتونی این کارو انجام بدی.
shahrdar
یک شنبه 02 تیر 1387, 21:25 عصر
اينم کدها
Dim lngResult As Integer
Dim IntPos As Integer
Dim Options As System.Windows.Forms.RichTextBoxFinds = RichTextBoxFinds.None
Public FindPre As Boolean = False
Public Nextfind As Boolean = False
پيدا کردن قبلی
Public Sub FindMEPre(ByVal Where As RichTextBox, ByVal What As String, ByVal BeginStart As CheckBox, ByVal Wrap As CheckBox)
'Try
Dim OptionsPer As System.Windows.Forms.RichTextBoxFinds
OptionsPer = Options + RichTextBoxFinds.Reverse
Where.SelectionLength = 0
Select Case FindPre
'~~~~~~~~~~~~~'Next
Case False
Select Case BeginStart.CheckState 'آ يا بايد از اول شروع کنه يا نه
Case CheckState.Checked 'آره از اول شروع بشه
IntPos = Where.TextLength
Case CheckState.Unchecked 'خير،از جايی که هست شروع کنه
IntPos = Where.SelectionStart
End Select
'~~~~~~~~~~~~~'Find Next
Case True
IntPos = Where.SelectionStart
If IntPos = 0 Then GoTo Boro
End Select
'Search Me
lngResult = Where.Find(What, 0, IntPos, OptionsPer)
'Not Found
If lngResult = -1 Then
Boro:
Select Case Wrap.CheckState
Case CheckState.Checked 'اگه بايد بيا از سر شروع کنه
Where.SelectionStart = Where.TextLength
Where.SelectionLength = 0
FindPre = False
IntPos = Where.TextLength
Case CheckState.Unchecked 'اگه بايد پيغام نشون بده
MessageBox.Show("Cannot find string", "Search", MessageBoxButtons.OK)
FindPre = False
Exit Sub
End Select
Else 'Text Found
FindPre = True
End If
Where.ScrollToCaret()
'Catch ex As Exception
' IntPos = Where.TextLength
' pakkon("Try Again")
'End Try
End Sub
پيدا کردن بدی
Public Sub Findnext(ByVal Where As RichTextBox, ByVal What As String, ByVal BeginStart As CheckBox, ByVal Wrap As CheckBox)
Try
Select Case Nextfind
'~~~~~~~~~~~~~'Next
Case False
Select Case BeginStart.CheckState 'آ يا بايد از اول شروع کنه يا نه
Case CheckState.Checked 'آره از اول شروع بشه
IntPos = 0
Case CheckState.Unchecked 'خير،از جايی که هست شروع کنه
IntPos = Where.SelectionStart
End Select
'~~~~~~~~~~~~~'Find Next
Case True
Select Case BeginStart.CheckState
Case CheckState.Checked
IntPos = lngResult + What.Length
Case CheckState.Unchecked 'خير،از جايی که هست شروع کنه
If Where.SelectionLength > 0 Then
IntPos = Where.SelectionStart + Where.SelectionLength
Else
IntPos = Where.SelectionStart
End If
If IntPos >= Where.Text.Length Then GoTo Boro
End Select
End Select
'Search Me
lngResult = Where.Find(What, IntPos, Options)
'Not Found
If lngResult = -1 Then
Select Case Wrap.CheckState
Case CheckState.Checked 'اگه بايد بيا از سر شروع کنه
Where.SelectionStart = 0
Where.SelectionLength = 0
Nextfind = False
IntPos = 0
Case CheckState.Unchecked 'اگه بايد پيغام نشون بده
Boro:
MessageBox.Show("Cannot find string", "Search", MessageBoxButtons.OK)
Nextfind = False
IntPos = 0
Exit Sub
End Select
Else 'Text Found
Nextfind = True
End If
Where.ScrollToCaret()
Catch ex As Exception
IntPos = 0
End Try
End Sub
پيدا کردن همه
Public Function FindAll(ByVal Where As RichTextBox, ByVal What As TextBox, ByVal Bar As ProgressBar)
Dim Founded As Integer = 0
Dim intPosition As Integer = 0
Dim OptionsAll As System.Windows.Forms.RichTextBoxFinds
OptionsAll = RichTextBoxFinds.NoHighlight + Options
intPosition = 0
Bar.Visible = True
Do
lngResult = Where.Find(What.Text, intPosition, OptionsAll)
If lngResult = -1 Then
Exit Do
Else
intPosition = lngResult + What.Text.Length
Founded += 1
If intPosition >= Where.Text.Length Then Exit Do
End If
Loop
Bar.Visible = False
Return Founded
End Function
کد جايگزينی رو هم بدن برات ميزرم
رو اينا که خيلی تلاش کردم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.