PDA

View Full Version : سوال: سوال در مورد richtextbox و نحوه رنگی کردن و شمارش بعضی از کاراکتر های آن



asd313
شنبه 29 تیر 1392, 15:47 عصر
بسم الله الرحمن الرحیم


با سلام خدمت دوستان و اساتید عزیز و محترم

نماز و روزه هاتون قبول درگاه حق باشه ایشالا

غرض از مزاحمت چند تا سوال داشتم شاید از نظر خیلیاتون آسون باشه اما از نظر منی که تازه سی شارپ یاد گرفتم نه !

1.میخوام یه کاری کنم که مثلا توی ریچ تکست باکسی که دارم هر چی کاراکتره (#) بزنم رنگی بشه و رنگ اون با بقیه کاراکترا فرق داشته باشه باید چیکار کنم ؟




2.میخوام تعداد کاراکتر های کل تکست باکس یا ریچ تکست باکس در یک label نوشته بشه راهکاری پیش پام میزارید؟




3.میخوام تعداد فقط بعضی از کاراکتر های خاص مثلا (*) یک ریچ تکست باکس در یک label نوشته بشه اینم بی زحمت بگید باید چیکار کنم براش؟




کمکم میکنید؟ ممنونتون میشم



یا حق

mthreat.info
شنبه 29 تیر 1392, 16:01 عصر
اول باید جست و جو کنید تا # را مارک دار کنید بعد با selectioncolor بگیرید رنگ رو عوض کنید
دوم با TextLength یا text.Length هم میتونید
سوم با split کردن * تعداد * بدست میاد

sohil_ww
شنبه 29 تیر 1392, 16:31 عصر
label2.Text = richTextBox1.TextLength.ToString();
char[] a = new char[richTextBox1.TextLength];
for (int i = 0; i < richTextBox1.Text.Length; i++)
{
a[i] = richTextBox1.Text[i];
if (a[i] == '#')
{
richTextBox1.Select(i, i);
richTextBox1.SelectionColor = Color.Red;
MessageBox.Show(i.ToString());

}

1 کوچولو تغیرات بدی درست می شه

asd313
دوشنبه 31 تیر 1392, 07:10 صبح
سلام ممنون از توضیحاتتون ، جواب یکی از سوالامو گرفتم


سوم با split کردن * تعداد * بدست میاد
خیلی عذر میخوام معذرت میخوام روم به دیوار شرمنده کمی توضیحاتتون گنگ و مبهم نیست؟




label2.Text = richTextBox1.TextLength.ToString();


char[] a = new char[richTextBox1.TextLength];


for (int i = 0; i < richTextBox1.Text.Length; i++)


{


a[i] = richTextBox1.Text[i];


if (a[i] == '#')


{


richTextBox1.Select(i, i);


richTextBox1.SelectionColor = Color.Red;


MessageBox.Show(i.ToString());





}



اینو ازش استفاده کردم چندین و چند بار توش تغییراتی اعمال کردم ولی یا ارور میداد یا اینکه درست نشد ، بعد از اولین # که به ریچ تکست باکس میدم ، بقیه تکست ها و کاراکترا هم رنگشون عوض میشه اما من میخوام ریچ تکست باکسم مثل مثال پایینی باشه :


asd313#sohil_ww#mthreat.info#

asd313
دوشنبه 31 تیر 1392, 09:09 صبح
سلام دوستان به جواب سوال آخرمم رسیدم فقط موند یه سوال اونو هر کاری کردم نشد . . .

یعنی سوال اولی:

میخوام یه کاری کنم که مثلا توی ریچ تکست باکسی که دارم هر چی کاراکتره (#) بزنم رنگی بشه و رنگ اون با بقیه کاراکترا فرق داشته باشه باید چیکار کنم ؟


سوم با split کردن * تعداد * بدست میاد

به جواب این سوالم رسیدم تشکر

sohil_ww
دوشنبه 31 تیر 1392, 09:51 صبح
سلام ممنون از توضیحاتتون ، جواب یکی از سوالامو گرفتم


خیلی عذر میخوام معذرت میخوام روم به دیوار شرمنده کمی توضیحاتتون گنگ و مبهم نیست؟




اینو ازش استفاده کردم چندین و چند بار توش تغییراتی اعمال کردم ولی یا ارور میداد یا اینکه درست نشد ، بعد از اولین # که به ریچ تکست باکس میدم ، بقیه تکست ها و کاراکترا هم رنگشون عوض میشه اما من میخوام ریچ تکست باکسم مثل مثال پایینی باشه :



1 else براش بنویس که selectiontext تغیر بده
اگه متوجه نشدی چی گفتم بگو تا بیشتر راهنمایت کنم

mthreat.info
دوشنبه 31 تیر 1392, 10:19 صبح
:D قبول دارم گنگ گفتم :d
ولی دیگه نه تا این حد :D


2.میخوام تعداد کاراکتر های کل تکست باکس یا ریچ تکست باکس در یک label نوشته بشه راهکاری پیش پام میزارید؟

تعداد کلمات :


label.Text = textBox1.TextLength.ToString();
//یا

label.Text = textBox1.Text.Length.ToString();

به جای label میتونید از خود فرم جاری"this" یا یه تکس باکس و هر چی که خاصیت تکس داشته باشه".Text" و "textBox1" هم جایی هست که میخواهید تعداد کلماتش رو بدست بیارید هست!


3.میخوام تعداد فقط بعضی از کاراکتر های خاص مثلا (*) یک ریچ تکست باکس در یک label نوشته بشه اینم بی زحمت بگید باید چیکار کنم براش؟




label.Text = (textBox1.Text.Split('*').Length-1).ToString();





1.میخوام یه کاری کنم که مثلا توی ریچ تکست باکسی که دارم هر چی کاراکتره (#) بزنم رنگی بشه و رنگ اون با بقیه کاراکترا فرق داشته باشه باید چیکار کنم ؟



int i = RichTextBox1.Text.ToUpper().IndexOf("#"(),
RichTextBox1.SelectionStart + RichTextBox1.SelectionLength);
if (i > -1)
{
textBox1.SelectionStart=i;
RichTextBox1.SelectionLength ="#".TextLength;
RichTextBox1.SelectionColor = Color.Red;
}

کد بالا رو تو حلقه ی خودت بزار


for (int i = 0; i < richTextBox1.Text.Length; i++)


{