【发布时间】:2014-10-19 21:56:03
【问题描述】:
我有一个自定义控件,我正在绘制它的一些内容,如下所示:
public class TextItem
{
public Font Font { get; set; }
}
public TaskBox()
{
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.ResizeRedraw, true);
this.items = new List<TextItem>();
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
foreach (TextItem item in items)
{
if (item.Bounds.Contains(e.Location))
{
item.ForeColor = Color.Red;
Cursor.Current = Cursors.Hand;
}
else
{
item.ForeColor = Color.Black;
Cursor.Current = Cursors.Default;
}
}
}
光标会相应地改变,但是文本没有改变颜色。我错过了一些初始化吗?
【问题讨论】:
-
你没有告诉它使用新颜色重绘
-
这实际上是答案。控件必须失效。
标签: c# winforms user-controls