我有一个带有用户控件的 WinForms 应用程序,我在其中根据光标的位置动态更改光标。我将自定义光标创建为用户控件的静态成员,如下所示:
private static Cursor _openHandCursor = new Cursor( Properties.Resources.openHand.Handle );
然后在OnMouseMove
覆盖中设置适当的光标,如下所示:
this.Cursor = <some condition> ? _openHandCursor : Cursors.Default;
当我启动应用程序时,它可以正常工作。但是,经过几次光标更改(大约 20 次)后,它仍然使用默认(箭头)位图并且不再更改。但最奇怪的是,发生这种情况后,我检查了Handle
当前Cursor
值的属性,它等于_openHandCursor
对象的句柄!因此,似乎该属性的值仍在正确设置,但屏幕上的光标位图没有得到更新。关于这种奇怪的行为有什么建议吗?