PDA

View Full Version : سوال: چگونگی نوشتم متن در Textbox یا RichTextBox به صورت چند رنگ



mohpooria
پنج شنبه 03 فروردین 1391, 15:57 عصر
سلام
من کی خواهم هنگمامی که دارم با Text کلمه یا حرفی اضافه می کنم در بعضی از مواقع رنگ نوشته را تغییر بدم
البته منظورم این نیست رنگ کل متن را
می خواهم در نوشته مثلا از دو رنگ آبی و قرمز استفاده کنم
سعی کردم ولی کل متن همیشه با هم رنگ عوض میکنند
ممنون می شوم راهنمایی کنید

رافعی مهدی
جمعه 04 فروردین 1391, 01:11 صبح
سلام

برای این کار باید با پراپرتیهای کنترل RichTextBox آشنا باشید. توجه کنید که تغییر تنها بخشی از رنگ متن داخل یک TextBox ساده (از روشهای معمول) امکان پذیر نیست.
لطفاً به این مثال توجه کنید. ابتدا متنی را به دلخواه در کنترل مورد نظر قرار میدهیم:


richTextBox1.Text = "A colorful text consist of Blue and Red colors.";

حالا مثلا میخواهیم رنگ کلمه Blue را در آن آبی و رنگ کلمه Red را قرمز کنیم. در بیشتر موارد برای اعمال تغییرات در این کنترل، لازم است ابتدا بخش مورد نظر از متن را انتخاب کرده، سپس تغییرات دلخواه خود را بر روی آن اعمال کنید. از آنجا که با انجام این کار وضعیت کنونیِ انتخاب و همچنین محل کرسر تغییر میکند، بهتر است ابتدا آنها را در متغیری مناسب ذخیره کرده و در آخر وضعیت کنترل را به حالت اولیه برگردانیم.
در تکه کد زیر پس از انجام این کار، محل کلمه مورد نظر جستجو شده، سپس رنگ آن تغییر کرده است. در آخر هم وضعیت به حالت اول بازگردانده شده.


//
// Storing current state in some variables..
//
int selectionStart = richTextBox1.SelectionStart;
int selectionLength = richTextBox1.SelectionLength;

//
// Select desired part of text..
//
richTextBox1.Select(richTextBox1.Find("Blue"), "Blue".Length);

//
// Change selected text color..
//
richTextBox1.SelectionColor = Color.Blue;

//
// Do the same as above for Red color..
//
richTextBox1.Select(richTextBox1.Find("Red"), "Red".Length);
richTextBox1.SelectionColor = Color.Red;

//
// Deselect text and get back to the initial state..
//
richTextBox1.DeselectAll();
richTextBox1.Select(selectionStart, selectionLength);


موفق باشید