سلام وخسته نباشید.
یه برنامه هست که متون عربی رو با اعراب هاش نشون میده، من میخوام کاری کنم که اعراب ها به رنگ دیگه ای نمایش داده بشه،فرض کنید مثلا برای تغییر رنگ اعراب فتحه و کسره از کد زیر استفاده کردم :
string fathe = "َ";
string kasre = "ِ";
//change fathe to red color
for (int i = 0; i < this.richTextBox1.Text.Length - (fathe.Length + 1); i++)
{
if (this.richTextBox1.Text.Substring(i, fathe.Length) == fathe)
{
this.richTextBox1.SelectionStart = i;
this.richTextBox1.SelectionLength = fathe.Length;
this.richTextBox1.SelectionColor = Color.Red;
}
}
//change kasre to red color
for (int i = 0; i < this.richTextBox1.Text.Length - (kasre.Length + 1); i++)
{
if (this.richTextBox1.Text.Substring(i, kasre.Length) == kasre)
{
this.richTextBox1.SelectionStart = i;
this.richTextBox1.SelectionLength = kasre.Length;
this.richTextBox1.SelectionColor = Color.Red;
}
}
this.richTextBox1.SelectionStart = 0;
this.richTextBox1.SelectionLength = 0;
ولی هیچ اتفاقی نمیافته، با همین روش کلمات رو رنگی میکنم ولی اعراب رو رنگی نمیکنه، میشه کمکم کنید.
در ضمن با عمل مشابهی کدی نوشتم که اعراب ها رو در متن حذف کنه و این کار رو میکنه به غیر از اعراب مدی که در کلمه ی الضَّآلِّینَ نوشته شده، هر کار میکنم این مد حذف نمیشه، اگه لطف کنید کد درستشو به من بدید، کد حذف اعراب ها رو به این صورت نوشتم :
string alef_1 = "ﺇ";
string alef_2 = "ﺃ";
string alef_3 = "ﺁ";
string alef_4 = "إ";
string text = this.richTextBox1.Text;
this.richTextBox1.Text = text.Replace(alef_1, "ﺍ");
this.richTextBox1.Text = text.Replace(alef_2, "ﺍ");
this.richTextBox1.Text = text.Replace(alef_3, "ﺍ");
this.richTextBox1.Text = text.Replace(alef_4, "ﺍ");
و
string hamze_1 = "ﺄ";
string hamze_2 = "ﺂ";
string hamze_3 = "ﺈ";
string text = this.richTextBox1.Text;
this.richTextBox1.Text = text.Replace(hamze_1, "ﺎ");
this.richTextBox1.Text = text.Replace(hamze_2, "ﺎ");
this.richTextBox1.Text = text.Replace(hamze_3, "ﺎ");