View Full Version : سوال: راهنمایی در مورد یک Editor SQL Server
Salar Ashgi
یک شنبه 29 آذر 1388, 11:08 صبح
سلام به همه دوستان عزیز ، در طراحی یک ویرایشگر متن پایگاه داده میخوام کلمات کلیدی
با رنگ خاصی نشون داده بشن ، من از یک ریچ تکست باکس استفاده کردم ولی درست در
نیومد ، کد مورد نظر
if (richTextBox1.Text.Contains("select"))
{
richTextBox1.Select(richTextBox1.Text.IndexOf("select", 0), 6);
richTextBox1.SelectionColor = Color.Blue;
}
ممنون از راهنمایی شما
حامد مصافی
یک شنبه 29 آذر 1388, 12:02 عصر
private void button1_Click(object sender, EventArgs e)
{
ColorizeWord("select");
ColorizeWord("from");
ColorizeWord("where");
ColorizeWord("delete");
//and so much more ... ;-)
}
private void ColorizeWord(string w)
{
int lastIndex = -2;
do
{
int startIndex;
if (lastIndex == -2)
startIndex = 0;
else
startIndex = lastIndex + w.Length;
lastIndex = richTextBox1.Text.IndexOf(w, startIndex, StringComparison.OrdinalIgnoreCase);
if (lastIndex == -1) break;
richTextBox1.SelectionStart = lastIndex;
richTextBox1.SelectionLength = w.Length;
richTextBox1.SelectionColor = Color.Blue;
} while (lastIndex != -1);
}
Salar Ashgi
یک شنبه 29 آذر 1388, 13:00 عصر
ممنون از راهنمایی شما ، ولی من میخوام تو حالت Text changed این اتفاق بیافته ، چون کد من هم مثل
کد شما خارج از ایونت Text changed درست جواب میده و در داخل ایونت وقتی اولین کلمه رو پیدا کرد اونو
select میکنه و اگه دوباره بخوایم تایپ کنیم رو متن select شده تایپ خواهد شد .
Salar Ashgi
دوشنبه 30 آذر 1388, 12:54 عصر
دوستان نظر خاصی ندارند ؟
حامد مصافی
دوشنبه 30 آذر 1388, 13:06 عصر
كد را به اين شكل اصلاح كردم:
private void ColorizeWord(string w)
{
Regex r = new Regex("\\W" + w + "\\W", RegexOptions.IgnoreCase);
foreach (Match m in r.Matches(" " + richTextBox1.Text + " "))
{
richTextBox1.SelectionStart = m.Index;
richTextBox1.SelectionLength = w.Length;
richTextBox1.SelectionColor = Color.Blue;
}
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
int selectionIndex = richTextBox1.SelectionStart;
int selectionLength = richTextBox1.SelectionLength;
richTextBox1.SelectionStart = 0;
richTextBox1.SelectionLength = richTextBox1.Text.Length;
richTextBox1.SelectionColor = Color.Black;
ColorizeWord("select");
ColorizeWord("from");
ColorizeWord("where");
ColorizeWord("delete");
richTextBox1.SelectionStart = selectionIndex;
richTextBox1.SelectionLength = selectionLength;
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.