PDA

View Full Version : نوشته رنگی در RichTextBox



samiasoft
سه شنبه 18 فروردین 1394, 16:22 عصر
سلام دوستان

شاید بگین این موضوع تکراری باشه اما من با جستجویی که انجام دادم به نتیجه ای نرسیدم

من میخواستم وقتی در RichTextBox تایپ میکنم ابتدای هرکلمه رنگش قرمز و انتهای هرکلمه رنگش سیاه باشه و بقیه حروف سبز رنگ باشه. همانند تصویر زیر

http://samisoft.ir/1/images/bI0BY.gif

ممنون میشم راهنمایی کنید.

با این کد زیر فقط میتونم کلمه مورد نظرمو رنگشو عوض کنم


b = Len(rtb1.Text)
If Right(rtb1.Text, 1) = "س" Then
rtb1.SelStart = b - 1
rtb1.SelLength = 1
rtb1.SelColor =vbred
rtb1.SelStart = b
rtb1.SelLength = 1
rtb1.SelColor = vbBlack
end if

samiasoft
چهارشنبه 19 فروردین 1394, 16:51 عصر
من بصورت زیر کد رو نوشتم اما به نظرتون ساده تر از این هم میشه ؟
البته کلمه اول رو رنگشو درست تغییر نمیده که باید برای اون هم یه شرط بزارم

b = Len(RichTextBox1.Text)

For a = 0 To Len(RichTextBox1.Text)

m = Right(Left(RichTextBox1.Text, a), 1)
If m = " " Then
RichTextBox1.SelStart = a - 2
RichTextBox1.SelLength = 1
RichTextBox1.SelColor = vbGreen
RichTextBox1.SelStart = a
RichTextBox1.SelLength = 1
RichTextBox1.SelColor = vbRed

RichTextBox1.SelStart = b
RichTextBox1.SelLength = 1
RichTextBox1.SelColor = vbBlack
End If

Next

samiasoft
شنبه 31 مرداد 1394, 19:01 عصر
اگر بخواهیم متن موجود در ریچ تکست باکس رو بصورت رنگین کمانی (هفت رنگ) دربیاریم چگونه اینو انجام داد؟

که بعد از رسیدن به رنگ هفتم دوباره این روند تکرار بشه.:متفکر:

همچنین یک طیف رنگ بصورت زیر رو چطوری میشه در این انجام داد.


http://barnamenevis.org/attachment.php?attachmentid=35679&stc=1&d=1250873818

roo.row
یک شنبه 01 شهریور 1394, 14:03 عصر
با سلام

دومی در vb ممکن نیست (

http://barnamenevis.org/attachment.php?attachmentid=35679&stc=1&d=1250873818

ولی برای رنگین کمون کردنش می تونی با splite کلمه ها رو جدا کنی بعد برای هر کدوم یه رنگ تعریف کنید همون جوری که بالا هم انجام دادید
با تشکر

samiasoft
یک شنبه 01 شهریور 1394, 23:57 عصر
هرکار کردم نتونستم حلقه این کد زیر رو درست کنم.(در کد زیر مقادیر SelColor رو برفرض مثال فارسی نوشتم)

With rtb1

.SelStart = 0
.SelLength = 1
.SelColor = "قرمز"
.SelStart = 1
.SelLength = 2
.SelColor = "نارنجي"
.SelStart = 2
.SelLength = 3
.SelColor = "زرد"
.SelStart = 3
.SelLength = 4
.SelColor = "آبي"
.SelStart = 4
.SelLength = 5
.SelColor = "مشکي"
.SelStart = 5
.SelLength = 6
.SelColor = "بنفش"
.SelStart = 6
.SelLength = 7
.SelColor = "صورتي"
End With
الان فقط جمله ای که 7 تا حرف داشته باشه رو حروفشو به درستی تغییر رنگ میده اما وقتی از 7 بیشتر میشن باید دیگه اینو توی یه حلقه قرار بدم دیگه درسته ؟
ولی رابطه ای نتونستم پیدا کنم برای حلقه درست کردن این.

که ادامش این میشه باز :
With rtb1

.SelStart = 7
.SelLength = 8
.SelColor = "قرمز"
.SelStart = 8
.SelLength = 9
.SelColor = "نارنجي"
.SelStart = 9
.SelLength = 10
.SelColor = "زرد"
.SelStart = 10
.SelLength = 11
.SelColor = "آبي"
.SelStart = 11
.SelLength = 12
.SelColor = "مشکي"
.SelStart = 12
.SelLength = 13
.SelColor = "بنفش"
.SelStart = 13
.SelLength = 14
.SelColor = "صورتي"
End With
و الا آخر تا تعداد حروف جملات...

یک نکته دیگر اینکه وقتی اسپیس در جمله باشه میخواستم نادیده بگیره در رنگ کردن.جون الان برای اسپیس هم یه رنگی رو هدر میده

ممنون میشم راهنمایی کنید.

setroyd
دوشنبه 02 شهریور 1394, 01:29 صبح
داداش گلم من طیف رنگی 2تا رنگو برات نوشتم قبلا طیف 7 رنگ رو هم نوشته بودم اما خودتون که میدونید خیلی وقته برنامه نویسی نمیکنم اینم الان با کلی فکر نوشتم ! برحال امیدوارم به دردت بخوره کد رو هم برات کلاس کردم که راحت کال کنی و هرجاشم نفهمیدی بگو برات توضیح بدم .

134591