مشکل RightToLeft در richtextbox
سلام وقت بخیر
یک چک باکس در فرم قرار دادم که کاربر با فعال کردن و یا غیرفعال کردن ان میتواند متن داخل ریچ تکست باکس را چپ به راست یا برعکس کند با این دستور :
private void checkBox_RightToLeft_CheckedChanged(object sender, EventArgs e) {
if (checkBox_RightToLeft.Checked)
{
richTextBox_descriptions.RightToLeft = RightToLeft.Yes;
}
else
{
richTextBox_descriptions.RightToLeft = RightToLeft.No;
}
}
مشکلی که وجود داره اینه وقتی متن فارسی را راست به چپ میکنم همانطور که در تصویر میبینید در سمت راست فضای خالی ایجاد میشود!!!!!!
به نظرتون مشکل از کجاست؟!
نقل قول: مشکل RightToLeft در ریچ تکست باکس
نقل قول:
نوشته شده توسط
samiasoft
سلام وقت بخیر
یک چک باکس در فرم قرار دادم که کاربر با فعال کردن و یا غیرفعال کردن ان میتواند متن داخل ریچ تکست باکس را چپ به راست یا برعکس کند با این دستور :
private void checkBox_RightToLeft_CheckedChanged(object sender, EventArgs e) {
if (checkBox_RightToLeft.Checked)
{
richTextBox_descriptions.RightToLeft = RightToLeft.Yes;
}
else
{
richTextBox_descriptions.RightToLeft = RightToLeft.No;
}
}
مشکلی که وجود داره اینه وقتی متن فارسی را راست به چپ میکنم همانطور که در تصویر میبینید در سمت راست فضای خالی ایجاد میشود!!!!!!
به نظرتون مشکل از کجاست؟!
امتحان کنید :
private void checkBox_RightToLeft_CheckedChanged(object sender, EventArgs e)
{
var selectionStart = richTextBox_descriptions.SelectionStart;
var selectionLength = richTextBox_descriptions.SelectionLength;
richTextBox_descriptions.SelectAll();
richTextBox_descriptions.SelectionHangingIndent = 0;
richTextBox_descriptions.SelectionIndent = 0;
richTextBox_descriptions.SelectionRightIndent = 0;
richTextBox_descriptions.SelectionTabs = null;
richTextBox_descriptions.RightToLeft = (checkBox_RightToLeft.Checked) ? RightToLeft.Yes : RightToLeft.No;
richTextBox_descriptions.SelectionStart = selectionStart;
richTextBox_descriptions.SelectionLength = selectionLength;
}
1 ضمیمه
نقل قول: مشکل RightToLeft در ریچ تکست باکس
نقل قول:
نوشته شده توسط
the king
امتحان کنید :
private void checkBox_RightToLeft_CheckedChanged(object sender, EventArgs e)
{
var selectionStart = richTextBox_descriptions.SelectionStart;
var selectionLength = richTextBox_descriptions.SelectionLength;
richTextBox_descriptions.SelectAll();
richTextBox_descriptions.SelectionHangingIndent = 0;
richTextBox_descriptions.SelectionIndent = 0;
richTextBox_descriptions.SelectionRightIndent = 0;
richTextBox_descriptions.SelectionTabs = null;
richTextBox_descriptions.RightToLeft = (checkBox_RightToLeft.Checked) ? RightToLeft.Yes : RightToLeft.No;
richTextBox_descriptions.SelectionStart = selectionStart;
richTextBox_descriptions.SelectionLength = selectionLength;
}
متشکرم دوست عزیز...اما مشکل با این دستورات حل نشد متاسفانه
پروژه مربوطه رو ضمیمه کردم ممنون میشوم درصورت امکان تست کنید
نقل قول: مشکل RightToLeft در ریچ تکست باکس
نقل قول:
نوشته شده توسط
samiasoft
سلام وقت بخیر
یک چک باکس در فرم قرار دادم که کاربر با فعال کردن و یا غیرفعال کردن ان میتواند متن داخل ریچ تکست باکس را چپ به راست یا برعکس کند با این دستور :
private void checkBox_RightToLeft_CheckedChanged(object sender, EventArgs e) {
if (checkBox_RightToLeft.Checked)
{
richTextBox_descriptions.RightToLeft = RightToLeft.Yes;
}
else
{
richTextBox_descriptions.RightToLeft = RightToLeft.No;
}
}
مشکلی که وجود داره اینه وقتی متن فارسی را راست به چپ میکنم همانطور که در تصویر میبینید در سمت راست فضای خالی ایجاد میشود!!!!!!
به نظرتون مشکل از کجاست؟!
خیلی وقته با ریچ تکست باکس کار نکردم، فک کنم پراپرتی ای با عنوان Alignment داره که توسطش میتونید موقعیت متن رو تنظیم کنید
نقل قول: مشکل RightToLeft در ریچ تکست باکس
نقل قول:
نوشته شده توسط
mr.sirwan
خیلی وقته با ریچ تکست باکس کار نکردم، فک کنم پراپرتی ای با عنوان Alignment داره که توسطش میتونید موقعیت متن رو تنظیم کنید
ممنون بدین صورت اگر منظورتونه :
richTextBox_descriptions.SelectAll();
richTextBox_descriptions.SelectionAlignment = (checkBox_RightToLeft.Checked) ? HorizontalAlignment.Right : HorizontalAlignment.Left;
اینو چندبار اگر اجرا کنم متن درست میشه!!!
نقل قول: مشکل RightToLeft در ریچ تکست باکس
نقل قول:
نوشته شده توسط
samiasoft
ممنون بدین صورت اگر منظورتونه :
richTextBox_descriptions.SelectAll();
richTextBox_descriptions.SelectionAlignment = (checkBox_RightToLeft.Checked) ? HorizontalAlignment.Right : HorizontalAlignment.Left;
اینو چندبار اگر اجرا کنم متن درست میشه!!!
چند بار؟ اگه موثر باشه منطقی است که همون بار اول کافی باشه. عجیبه.
نقل قول: مشکل RightToLeft در richtextbox
سلام
اگر متن شامل متون انگلیسی و هم فارسی باشه چطور میشه یک خط خاص رو RTL کرد؟
ممنون
نقل قول: مشکل RightToLeft در richtextbox
نقل قول:
نوشته شده توسط
mmbguide
سلام
اگر متن شامل متون انگلیسی و هم فارسی باشه چطور میشه یک خط خاص رو RTL کرد؟
ممنون
من صرفا با روش تزریق کد های RTF میدونم :
private void button1_Click(object sender, EventArgs e)
{
var line = richTextBox1.GetLineFromCharIndex(richTextBox1.Get FirstCharIndexOfCurrentLine());
if (line == richTextBox1.Lines.Length - 1)
{
richTextBox1.AppendText("\r");
}
richTextBox1.SelectionStart = richTextBox1.GetFirstCharIndexFromLine(line);
richTextBox1.SelectionLength = richTextBox1.GetFirstCharIndexFromLine(line + 1) - richTextBox1.SelectionStart;
richTextBox1.SelectedRtf = richTextBox1.SelectedRtf.Replace("\\ltrpar", "\\rtlpar");
}