PDA

View Full Version : سوال: چگونه رنگ کلمات کلیدی در ریچ تکست باکس با بقیه کلمات متفارت باشد .



Jaxon_hacker_black
شنبه 12 بهمن 1392, 14:03 عصر
سلام . دوستان می خوام یه برنامه بنویسم که رنگ کلمات کلیدی داخل اون که من مشخص می کنم با بقیه ی کلمات که داخل ریچ تکست باکس نوشته می شه فرق کنه . داخل برنامه ویژال استادیو هم هست مثلا کلمه ی this بارنگ ابی نوشته می شه ولی باقیه کلمات رنگشان با this فرق می کنه . چطوری بتونم این کار رو با ریچ تکست باکسم انجام بدم . یه عکس هم قرار می دم که یه دستور داخلش نوشتم که بیشتر متوجه شوید این عکس داخل نوت پد پلاس پلاسه :
116255

fmehrvarzi
شنبه 12 بهمن 1392, 18:00 عصر
یک تابع تعریف میکنید که ایندکس کلمات کلیدی را پیدا کند (به توابع کلاس String مراجعه کنید (http://msdn.microsoft.com/en-us/library/system.string(v=vs.110).aspx))
سپس توسط کدهای زیر میتوانید آن قسمت از متنتان را که میخواهید رنگ آمیزی کنید.
richTextBox1.SelectionStart = startIndex;
richTextBox1.SelectionLength = intLength;
richTextBox1.SelectionColor = Color.Blue;
richTextBox1.DeselectAll();

fmehrvarzi
شنبه 12 بهمن 1392, 18:04 عصر
----------------:لبخند:
/**************Color some Text of RichTextBox***********/
private void ColourRrbText(RichTextBox rtb)
{
System.Text.RegularExpressions.Regex regExp =
new System.Text.RegularExpressions.Regex("For|Next|If|Then");

foreach (System.Text.RegularExpressions.Match match in regExp.Matches(rtb.Text))
{
rtb.Select(match.Index, match.Length);
rtb.SelectionColor = Color.Blue;
}
rtb.DeselectAll();
}

Jaxon_hacker_black
شنبه 12 بهمن 1392, 18:53 عصر
داداش میشه خودت یه پروژه بنویسی بزاری من ببینم . من تازه کارم هنوز از اینا سر در نمیارم . لطفا

fmehrvarzi
شنبه 12 بهمن 1392, 19:55 عصر
یک Richtextbox و یک TextBox و یک باتن روی فرمت قرار بدهید و رویداد کلیک باتن را به صورت زیر دربیآورید. کلمات کلیدی را میتوانید با | از هم جدا کنید.
private void button1_Click(object sender, EventArgs e)
{
ColourRrbText(richTextBox1,textBox2.Text, Color.Blue);
}
private void ColourRrbText(RichTextBox rtb,string _str,Color clr)
{
System.Text.RegularExpressions.Regex regExp =
new System.Text.RegularExpressions.Regex(_str);//"For|Next|If| Then"

foreach (System.Text.RegularExpressions.Match match in regExp.Matches(rtb.Text))
{
rtb.Select(match.Index, match.Length);
rtb.SelectionColor = clr;// Color.Blue;
}
rtb.DeselectAll();
}

Jaxon_hacker_black
شنبه 12 بهمن 1392, 23:07 عصر
سلام داداش ممنون . شد ولی یه مشکل دیگه هست که وقتی من این کلمه رو وارد می کنم دیگه ریچ تکست باکسم میا از اول و بقیه ی کلمات هم به همون رنگ می نویسه . عکس :
116290

fmehrvarzi
یک شنبه 13 بهمن 1392, 04:51 صبح
شما الان تو این تابعتون گفتید که کلمات کلیدیتون if و for هست.
سورس کد با 2012 ضمیمه کردم.