PDA

View Full Version : رنگی کردن selcolor در RichTextBox



rabenhod55
چهارشنبه 12 آبان 1389, 15:52 عصر
سلام

دوستان با عرض پوزش میخواستم
به فرض در جمله زیر
ali : red salam khobi
میخوام با پیدا کردن کلمه red جمله red salam khobi به رنگ قرمز تبدیل شود.
این جمله امکان داره بین هزاران جمله باشه
ممنون میشم کمک کنید.

xxxxx_xxxxx
چهارشنبه 12 آبان 1389, 16:12 عصر
سلام،
خب بعد از اینکه موقعیت جمله موردنظرتون رو با تابع InStr پیدا کردید، با متود SelStart و SelLength از RichTextBox متن رو به حالت انتخاب شده در میارید (هایلایت). بعدش با متود SelColor رنگ متن هایلایت شده رو تغییر بدید:


RichTextBox1.SelColor = vbRed


موفق باشید/

rabenhod55
چهارشنبه 12 آبان 1389, 20:25 عصر
دوست عزیز اینو خودم بلدم
منظورم اینه که یک خط رنگی بشه حالا معلوم نیست یک line چند کلمه هست که هایلاتش کنم بعد رنگیش کنم.
باز ممنون از کمکتون اگر میشه بیشتر راهنمایی کنید

xxxxx_xxxxx
چهارشنبه 12 آبان 1389, 23:33 عصر
سلام،
اگر مشکل در پیدا کردن نقطه شروع و انتهای خط موردنظر هست، با دو تا حلقه میتونید کاراکترهارو از همون موقعیت کلمه red به سمت چپ و راست پیمایش کنید تا اول و آخر خط رو بدست بیارید.

یک Command Button و یک RichTextBox بزارید روی فرم:



Private Sub Form_Load()
RichTextBox.Text = "this is white color" & vbCrLf & _
"this is red color" & vbCrLf & _
"this is green color" & vbCrLf & _
"this is blue color" & vbCrLf & _
"this is black color" & vbCrLf & _
"and this is yellow color"

End Sub

Private Sub Command_Click()
Dim i As Integer, pos As Integer, EndPoint As Integer, BeginPoint As Integer

pos = InStr(1, RichTextBox.Text, "red")
If pos = 0 Then Exit Sub

For i = pos To Len(RichTextBox.Text)
If Mid(RichTextBox.Text, i, 2) = vbCrLf Then EndPoint = i: Exit For
Next i

If EndPoint = 0 Then EndPoint = Len(RichTextBox.Text) + 1

For i = pos To 1 Step -1
If Mid(RichTextBox.Text, i, 2) = vbCrLf Then BeginPoint = i: Exit For
Next i

RichTextBox.SelStart = BeginPoint
RichTextBox.SelLength = EndPoint - BeginPoint
RichTextBox.SelColor = vbRed
End Sub

موفق باشید/

Mbt925
پنج شنبه 13 آبان 1389, 23:22 عصر
البته توابع API ای هم هستن که با دریافت اندیس کاراکتر موردنظر میگن در چه خطی قرار داره.
و از طرفی اندیس اولین کاراکتر خط بعد رو هم بهتون میدن. به این شکل شما می تونید طول خط موردنظر رو بدست بیارید.

returnx
جمعه 14 آبان 1389, 00:02 صبح
البته توابع API ای هم هستن که با دریافت اندیس کاراکتر موردنظر میگن در چه خطی قرار داره.
و از طرفی اندیس اولین کاراکتر خط بعد رو هم بهتون میدن. به این شکل شما می تونید طول خط موردنظر رو بدست بیارید.
دز یک textbox که multiline هست چطوری میتونیم شماره خط ها رو بدست بیاریم؟

milad-fa
جمعه 14 آبان 1389, 09:38 صبح
دز یک textbox که multiline هست چطوری میتونیم شماره خط ها رو بدست بیاریم؟

Dim x() As String

x = split(text1.text, vbcrlf)

msgbox UBound(x)