نقل قول: رنگي كردن يك كلمه؟
سلام اگر نیاز نیست تعداد پرانتزهای باز و بسته با هم برابر باشند کد TextChanged رو اینجوری بنویسی کافیه:
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
string rich1 = richTextBox1.Text;
int shomare1 = CountStringOccurrences(rich1, "("); // // 1شمردن پرانتز
int shomare2 = CountStringOccurrences(rich1, ")");// // شمردن پرانتز2
if (shomare1 > 0)
{
this.CheckKeyword("(", Color.Red, 0);
}
if (shomare2 > 0)
{
this.CheckKeyword(")", Color.Red, 0);
}
}
اما اگر لازمه بازای هر پرانتز باز یه پرانتز بسته وجود داشته باشه اینجوری بنویس:
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
string rich1 = richTextBox1.Text;
int shomare1 = CountStringOccurrences(rich1, "("); // // 1شمردن پرانتز
int shomare2 = CountStringOccurrences(rich1, ")");// // شمردن پرانتز2
if (shomare1 > 0 && shomare1 == shomare2)
{
this.CheckKeyword("(", Color.Red, 0);
this.CheckKeyword(")", Color.Red, 0);
}
}
نقل قول: رنگي كردن يك كلمه؟
جالب وقتي پرانتز رنگی میشه بعد از زدن حروف از روی کی برد مشکی است و مشکلی نیست ولی من یک باتن دارم مثل ماشین حساب وقتی روش کلیک می کنم علامت جمع روی رچباکس می یاد همراه پرانتز رنگی میشه ولی وقتی از روی کی برد می زنم درست است چرا؟کد باتن هم این می خوام مشکی باشه؟!
richTextBoxCod.Text = richTextBoxCod.Text + " " + ((Button)sender).Text+ " ";
نقل قول: رنگي كردن يك كلمه؟
متوجه نشدم می خوای چکار کنی و مشکل چیه!
یه همچین چیزی مد نظرتونه؟
لینک
1 ضمیمه
نقل قول: رنگي كردن يك كلمه؟
از توجه شما بزرگواران خیلی ممنون
به این برنامه نگاه کنید
می خواهم وقتی + می زنم به هیچ وجه رنگی نشه و فقط کروشه ها تغییر رنگ پیدا کنند
نقل قول: رنگي كردن يك كلمه؟
چطور مي تونم بهش بگم تمام كاراكترها را بغيير از} و{ را بگير و رنگش مشكي كن؟!:عصبانی++:
نقل قول: رنگي كردن يك كلمه؟
1 ضمیمه
نقل قول: رنگي كردن يك كلمه؟
داخل رچباکس رنگی هستند دیگه؟؟؟
نقل قول: رنگي كردن يك كلمه؟
سلام
ابتدا این فضای نام رو به فرمتون اضافه کنید
using System.Text.RegularExpressions;
با استفاده از این متدی که نوشتم ، هر کاراکتر یا کلمه ای رو که دلتون خواست در کنترل richTextbox رنگی کنید.
private void Colorize(RichTextBox sender, Color textColor, Color highlightColor)
{
//تعریف کاراکترها یا کلماتی که باید هایلایت شوند
List<string> reservedWords = new List<string>(new String[] {"{","}"});
int defaultSelection = sender.SelectionStart;
foreach (var item in reservedWords)
{
MatchCollection matchCollection = Regex.Matches(sender.Text, item.ToString());
foreach (Match matchItem in matchCollection)
{
sender.SelectionStart = matchItem.Index;
sender.SelectionLength = matchItem.Length;
sender.SelectionColor = highlightColor;
}
sender.SelectionStart = defaultSelection;
sender.SelectionLength = 0;
sender.SelectionColor = textColor;
}
}
نحوه فراخوانی و استفاده هم به اینصورت هست (برای مثال در رویداد TextChanged مربوط به richTextBox1)
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
Colorize(richTextBox1,Color.Black, Color.Red);
}
* پارامتر اول ، نام کنترل - پارامتر دوم رنگ متن عادی و پارامتر سوم رنگ متن هایلایت شده
موفق باشید.
2 ضمیمه
نقل قول: رنگي كردن يك كلمه؟
ولي نمي دونم چرا عشقي كار ميكنه بازم اين علامت + رنگي ميشه؟!!فايل و عكسش را مي زارم كجاي كار اشتباه اصلا اين علامت } تو سيشارپ به عنوان كاراكتر مگه نيست!!!!شايد چيز ديگري هست كه از قلم انداختم يا راه ديگه اي داره هر نظري داريد بگيد شايد راهي پيدا كنم مرسي