تغییر فرمت نوع خط در richTextBox
سلام
من میدونم که برای تغییر فرمت مثلا تغییر رنگ متن در richTextBox باید از دستور زیر استفاده کنم
richTextBox1.Select(0, 1);
richTextBox1.SelectionColor= Color.Blue;
حالا اگر من بخوام خط به خط بخونم و تغیرات خودم را بدم باید چکار کنم . یعنی بطور کلی نمیخوام سلکت متنم بر اساس شماره اندیکس کارکتر یاشه . میخوام بر اساس شماره اندیکس کارکتر در همون خط باشه
یعنی مثلا اگر من دو خط داشته باشم و در خط دوم بخوام سلکت کنم شماره اندیکس که مگیره ممکنه 12 باشه ولی اگر بخواهیم از اول همون خط فقط محاسبه کنیم شماره 3 بگیره من چچوری میتونم این شماره 3 را تغییر فرمت بدم مثلا حرف c در مثال پایین
qwertyuui
wdcft
که حرف سی در کل richTextBox اندیکس 12 میگیره ولی اگر فقط خط دوم را در نظر بگیرم اندیکس 3 میگیره
حالا سوال من این هست که اگر من اندیکس کل را نداشته باشم ولی شماره کارکتر در سطر دوم را دشته باشم چجوری رنگ اون عوض کنم
نقل قول: تغییر فرمت نوع خط در richTextBox
از این کد استفاده کنید:
public static int GetLineIndex(this TextBox textbox, int line)
{
var text = textbox.Text;
var thisLine = 0;
for (var i = 0; i < text.Length; i++)
{
if (thisLine == line)
return i;
if (text[i] == '\n')
++thisLine;
}
throw new ArgumentOutOfRangeException();
}
حالا تنها کاری که باید انجام بدین اینه که بیاین و این کد رو بنویسید:
GetLineIndex([نام تکست باکس], [شماره خط از اول]) + [ایندکس حرف در اون خط]
نقل قول: تغییر فرمت نوع خط در richTextBox
نقل قول:
نوشته شده توسط
ASHKANLAEI
از این کد استفاده کنید:
public static int GetLineIndex(this TextBox textbox, int line)
{
var text = textbox.Text;
var thisLine = 0;
for (var i = 0; i < text.Length; i++)
{
if (thisLine == line)
return i;
if (text[i] == '\n')
++thisLine;
}
throw new ArgumentOutOfRangeException();
}
حالا تنها کاری که باید انجام بدین اینه که بیاین و این کد رو بنویسید:
GetLineIndex([نام تکست باکس], [شماره خط از اول]) + [ایندکس حرف در اون خط]
سلام ممنون از شما
البته با تابع richTextBox1.GetFirstCharIndexFromLine توانستم اولین کارکتر ان خط را اندیکسش پیدا کنم و بعد بر اساس ان سلکت را انجام دادم
نقل قول: تغییر فرمت نوع خط در richTextBox
نقل قول:
نوشته شده توسط
mr.siahatgar
سلام ممنون از شما
البته با تابع richTextBox1.GetFirstCharIndexFromLine توانستم اولین کارکتر ان خط را اندیکسش پیدا کنم و بعد بر اساس ان سلکت را انجام دادم
این کد هم همون کار رو انجام میده.