PDA

View Full Version : مبتدی: Problem By Font&Size Richtextbox



hamed shahba
سه شنبه 21 دی 1389, 16:05 عصر
سلام دوستان
من تو برنامم از محتویات RichTextBoxپرینت میگیرم.
حالابا این مشکل روبروم که اولا چطوریRichTextBoxرو راست چین(فارسی نویس خودمون) کنم.
دوما چطوری میتونم داخلRichTextBox از سایزها وفونت های مختلف استفاده کنم یعنی خط اولش(Homa,10)خط دومش(koodak,20)
با تشکر :لبخندساده:

Richtextbox.text+="abcdef " -------size&Font 1
Richtextbox.text+="abcdef " -------size&Font 2
Richtextbox.text+="abcdef " -------size&Font 3

sajadjamalian
سه شنبه 21 دی 1389, 17:17 عصر
سلام دوست عزیز:
من یه نمونه برنامه دارم که کلیه مسائل richtextbox رو داره، البته از اسمش هم پیداست:
از سایت codeproject گرفتمش:

hamed shahba
سه شنبه 21 دی 1389, 22:04 عصر
mer30 aziz
vali shoma to ein barname be sorat dasti font &size text ro taghir midahid
man ghasd daram har kht ro ke khastm dakhele khod baname taghir daham
enshaallah ke motavaje manzoram shodid

Richtextbox.text+="abcdef " -------size&Font 1
Richtextbox.text+="abcdef " -------size&Font 2

ali.rezaei7
چهارشنبه 22 دی 1389, 00:39 صبح
درود. دوست عزيز لطفا فارسي بنويس.
اگه منظورتون تغيير فونت كاركترهاي انتخاب شده توسط كاربر هست، از دستور 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 رو به تابع دادم تا شماره انديس خط جاري رو بدست بيارم.