What you would want to do is hook the textbox's TextChanged event. Because you've databound that textbox, the listbox has no knowledge of the textbox, so that's where you would have to start.
So, in that event, you would just draw a box around the textbox with the color that is in the textbox.
You don't need to use a UserControl.
Something like this:
private void textBox2_TextChanged(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(FlashBorder));
t.Start();
}
private void FlashBorder()
{
Color color = Color.FromName(textBox2.Text);
using (Graphics g = this.CreateGraphics())
{
Pen pen = new Pen(color);
pen.Width = 2;
Rectangle rect = new Rectangle(textBox2.Left - 1, textBox2.Top - 1,
textBox2.Width + 2, textBox2.Height + 2);
Rectangle invalidateRect = new Rectangle(rect.Left - 1, rect.Top - 1,
rect.Width + 2, rect.Height + 2);
for (int i = 0; i <= 5; i++)
{
g.DrawRectangle(pen, rect);
Thread.Sleep(300);
this.Invalidate(invalidateRect);
Thread.Sleep(300);
}
}
this.Invalidate();
}