I have a window form that contain a listbox and some richtextboxex. listbox contains some values. When I select any value from l
Something like this should work (just tested this.. seems to work fine):
int openBrace = richTextBox.Text.IndexOf("<");
while (openBrace > -1) {
int endBrace = richTextBox.Text.IndexOf(">", openBrace);
if (endBrace > -1) {
richTextBox.SelectionStart = openBrace;
richTextBox.SelectionLength = endBrace - openBrace;
richTextBox.SelectionColor = Color.Blue;
}
openBrace = richTextBox.Text.IndexOf("<", openBrace + 1);
}
One way to do that without casting to new object with functionality you want is to override ListBox DrawItem
void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
var item = listBox1.Items[e.Index] as <Your_Item>;
e.DrawBackground();
if (item.fIsTemplate)
{
e.Graphics.DrawString(item.Text + "(Default)", new Font("Microsoft Sans Serif", 8, FontStyle.Regular), Brushes.Black, e.Bounds);
}
else
{
e.Graphics.DrawString(item.Text, new Font("Microsoft Sans Serif", 8, FontStyle.Regular), Brushes.Black, e.Bounds);
}
e.DrawFocusRectangle();
}
and add this in your constructor (after InitializeComponent(); call)
listBox1.DrawMode = DrawMode.OwnerDrawFixed;
listBox1.DrawItem += new DrawItemEventHandler(listBox1_DrawItem);