如何在WinForms中将WaitCursor光标设置在禁用的面板上
我正试着这么做如何在WinForms中将WaitCursor光标设置在禁用的面板上,winforms,panel,Winforms,Panel,我正试着这么做 panel.Enabled = false; // to disable all controls on panel at once panel.Cursor = Cursors.WaitCursor; 调试器显示了该面板。光标是WaitCursor,但当我在面板上移动鼠标时,光标仍然是箭头 panel.Update(); panel.Refresh(); // does not help 那么,如何修复它呢?禁用的控件将不会接收Windows消息。最简单的方法是保持启用状态
panel.Enabled = false; // to disable all controls on panel at once
panel.Cursor = Cursors.WaitCursor;
调试器显示了该面板。光标是WaitCursor,但当我在面板上移动鼠标时,光标仍然是箭头
panel.Update(); panel.Refresh(); // does not help
那么,如何修复它呢?禁用的控件将不会接收Windows消息。最简单的方法是保持启用状态,并以不同的方式处理“禁用” 对于您的特定需求,另一种选择是将下面的代码添加到按钮的父级上——您可以优化例程,使其仅在需要更改时调用
this.MouseMove += (s, a) =>
{
if (button2.Bounds.Contains(a.Location))
this.Cursor = Cursors.WaitCursor;
else
this.Cursor = Cursors.Default;
};
按照设计,“禁用”并不意味着“等待”。改为设置窗体的Cursor属性。我没说它有。但禁用面板上的鼠标始终为箭头,即使其属性Cursor=WaitCursor。设置窗体的光标没有帮助,而且在某些情况下可能会出错。