PDA

View Full Version : چطوری میشه در richtext با یک رنگ خاص نوشت



akobar
شنبه 01 خرداد 1389, 21:19 عصر
سلام
من میخوام با استفاده از یک color dialog رنگ نوشتن در richtext را عوض کنم

Peyman.Gh
شنبه 01 خرداد 1389, 21:44 عصر
private void button1_Click(object sender, EventArgs e)
{
colorDialog1.ShowDialog();
richTextBox1.ForeColor = colorDialog1.Color;
}
موفق باشید.

akobar
شنبه 01 خرداد 1389, 22:46 عصر
مرسی
ولی این کل متن رو مثلا قرمز میکنه
ولی من میخوام از وقتی که رنگ انتخاب شد مثلا با قرمز بنویسه

cardano7
یک شنبه 02 خرداد 1389, 15:30 عصر
اتفاقا امروز کلمه ی RichTextBox رو توی همین سایت سرچ کردم کلی Result اومد. که نشون میداد این سوال یکی از سوال های popular بود.
جوابش رو دارم ولی بهت نمیدم. حالش به اینه که Search کنی ولی اگه باز هم نتونستی جواب پیدا کنی بهم خیر بده تا بهت جوابش رو بدم.

akobar
یک شنبه 02 خرداد 1389, 18:04 عصر
آقا گشتم نبود
اگه میشه لطف کنین

L u k e
یک شنبه 02 خرداد 1389, 18:48 عصر
لازم به سرچ نیست اگه توی خصوصیت های کنترل Rich می گشتی پیداش می کردی
باید از خصوصیت SelectedColor رنگ مورد نظرتو به متن انتخاب شده بدی

cardano7
یک شنبه 02 خرداد 1389, 18:59 عصر
آقا گشتم نبود
اگه میشه لطف کنین

Search زدم چهار مورد اول به درد بخورش اینا بودند:
Link..........................1 (http://www.barnamenevis.org/forum/showthread.php?t=220703&highlight=%D8%B1%D9%86%DA%AF+RichTextBox)
Link..........................2 (http://www.barnamenevis.org/forum/showthread.php?t=214040&highlight=%D8%B1%D9%86%DA%AF+RichTextBox)
Link..........................3 (http://www.barnamenevis.org/forum/showthread.php?t=189646&highlight=%D8%B1%D9%86%DA%AF+RichTextBox)
Link..........................4 (http://www.barnamenevis.org/forum/showthread.php?t=175311&highlight=%D8%B1%D9%86%DA%AF+RichTextBox)

OK?

akobar
یک شنبه 02 خرداد 1389, 19:56 عصر
نه
لطف کنین سوال منو یک بار دیگر بخوانین
مثل برنامه word pad
در word pad امتحان کنید ببینین چی میگم

cardano7
یک شنبه 02 خرداد 1389, 20:49 عصر
نه
لطف کنین سوال منو یک بار دیگر بخوانین
مثل برنامه word pad
در word pad امتحان کنید ببینین چی میگم

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

RichTextBox1.SelectionColor = c.Color

L u k e
یک شنبه 02 خرداد 1389, 21:07 عصر
ببین این سورس کد رو ببین یه مشکلی داره باید خودت رفعش کنی




ColorDialog dialog = new ColorDialog();

if (dialog.ShowDialog() == DialogResult.OK)
{
Color a = richTextBox1.ForeColor;
richTextBox1.ForeColor = dialog.Color;
richTextBox1.Select(0, richTextBox1.Text.Length);
richTextBox1.SelectionColor = a;
richTextBox1.Refresh();
}

به جای a از ارایه استفاده کن و بگرد توی رشته ها و رنگ هر کدوم رو بریز توی متغیرت بعد دونه دونه سلکت کن و رنگشو بهشون بده
شرمنده وقت نداشتم کاملش کنم

cardano7
یک شنبه 02 خرداد 1389, 21:51 عصر
والا به این سختی ها هم نیست. برای من همین سه خط کد کار میده:

ColorDialog cd = new ColorDialog();
if (cd.ShowDialog() == DialogResult.OK)
richTextBox1.SelectionColor = cd.Color;

L u k e
یک شنبه 02 خرداد 1389, 22:35 عصر
فکر کنم منظور ایشون این باشه که وقتی یه رنگی رو انتخاب کردی هر چی نوشتی با اون بنویسه
مثلا اول رنگ سیاه رو انتخاب می کنی و باهاش یه چیزی می نویسی بعد رنگ قرمز رو انتخاب می کنی و باهاش قرمز می نویسی ولی اون چیز قبلی سیاه بمونه

cardano7
دوشنبه 03 خرداد 1389, 12:47 عصر
فکر کنم منظور ایشون این باشه که وقتی یه رنگی رو انتخاب کردی هر چی نوشتی با اون بنویسه
مثلا اول رنگ سیاه رو انتخاب می کنی و باهاش یه چیزی می نویسی بعد رنگ قرمز رو انتخاب می کنی و باهاش قرمز می نویسی ولی اون چیز قبلی سیاه بمونه

خوب این کد هم دقیقا همین کار رو می کنه.
یعنی اگه شما متنی را select کنید و بعد این دستور اجر بشه میاد و متن select شده را تغییر میده. اما اگه متنی را select نکنید و رنگ را عوض کنید میاد و رنگ قلم را برای ادامه ی نوشتن تغییر میده.
دقیقا همون کاری که Microsoft Word موقع تغییر رنگ انجام میده.