درود. دوست عزيز لطفا فارسي بنويس.
اگه منظورتون تغيير فونت كاركترهاي انتخاب شده توسط كاربر هست، از دستور richTextBox.SelectionFont استفاده كن.
نمونه كد:
richTextBox1.SelectionFont = new Font("Tahoma", 20, FontStyle.Bold);
در كد بالا مي تونيد قسمت FontStyle.Bold رو حذف كنيد.
ولي اگه منظورتون تغيير فونت يك خط كامل است، از تابعي كه براتون آماده كردم استفاده كنيد:
private void ChangeLineFont(int LineNumber,Font LineFont)
{
int CurrentIndex = richTextBox1.SelectionStart;
richTextBox1.SelectionStart =
richTextBox1.GetFirstCharIndexFromLine(LineNumber) ;
richTextBox1.SelectionLength =
richTextBox1.Lines[LineNumber].Length;
richTextBox1.SelectionFont = LineFont;
richTextBox1.SelectionStart = CurrentIndex;
richTextBox1.SelectionLength = 0;
}
اين تابع شماره خط و شي اي از كلاس Font ميگيره. و فونت خط مورد نظرو تغيير ميده.
در اين قطعه كد، در ابتدا به وسيله تابع GetFirstCharIndexFromLine شماره انديس اولين كاركتر خط مورد نظرو بدست مياريم و بعد از اين كار به ابتداي خط مي رويم.سپس خط مورد نظر از ابتدا تا انتها براي تغيير فونت انتخاب ميشه.
مثال در فراخواني تابع:
1.تغيير فونت خط شماره 3:
ChangeLineFont(2, new Font("Tahoma", 13));
2.تغيير رنگ خط جاري:
ChangeLineFont(richTextBox1.GetLineFromCharIndex(r ichTextBox1.SelectionStart),new Font("Tahoma",13));
نحوه يافتن شماره خط جاري در Richtextbox: تابع GetLineFromCharIndex، شماره انديس يك كاركتر رو مي گيره، و شماره خطي كه اون كاركتر قرار داره رو بر مي گردونه. حالا من مقدر خاصيت SelectionStart رو به تابع دادم تا شماره انديس خط جاري رو بدست بيارم.