سلام دوست عزیز
سوال اول و دوم رو جواب دادم برای سوال سوم من کاری که کردم تونستم متن رو رنگ کنم تا جایی که کاراکتر انتخاب شده بود.
اما اگه بخوای پس زمینه همون یه تیکه رنگش تغییر کنه فکر کنم 2 تا راه حل داشته باشی :
1-یه custom control بسازی 2-بگردی تو msdn قسمت richtextbox ببین چیزی برای کار که میخوای میتونی پیدا کنی . شاید از قبل مایکروسافت راه حلی داده باشه.
int positionTosearch;
private void richIndicateText_MouseDown(object sender, MouseEventArgs e)
{
if (e.Clicks == 1 && e.Button == MouseButtons.Left)
{
positionTosearch = richIndicateText.GetCharIndexFromPosition(new Point(e.X, e.Y));
if(positionTosearch >=1 && positionTosearch <= 50)
{
//MessageBox.Show(positionTosearch.ToString());
//richIndicateText.Text="50";
changeColorText();
richIndicateText.MouseLeave += RichIndicateText_MouseLeave;
}else if(positionTosearch >= 50 && positionTosearch <= 100)
{
//MessageBox.Show(positionTosearch.ToString());
//richIndicateText.Text = "100";
changeColorText();
richIndicateText.ForeColor = Color.Red;
}
}
}
private void changeColorText()
{
for (int i = 0; i <= positionTosearch; i++)
{
richIndicateText.SelectionStart = i;
richIndicateText.SelectionLength = 1;
richIndicateText.SelectionColor = Color.Red;
}
}
private void RichIndicateText_MouseLeave(object sender, EventArgs e)
{
for (int i = 0; i <= positionTosearch; i++)
{
richIndicateText.SelectionStart = i;
richIndicateText.SelectionLength = 1;
richIndicateText.SelectionColor = Color.Black;
}
}