Como faço para limpar Cursor.Clip em C # e permitir que o cursor se mover livremente de novo?
Pergunta
Eu estou tentando bloquear o cursor na forma, isto é para uma aplicação de rato armário, eu estou tentando descartar o cursor para que ele irá repor o Cursor.Clip
quando desbloqueá-lo.
Até agora eu tenho:
Cursor.Clip = new Rectangle(x +8, y +30, Size.Width -16, Size.Height -38);
Esta coima funciona.
Mas eu não posso descobrir como limpar o clipe quando desbloqueá-lo.
Eu tentei Cursor.Dispose();
Mas isso não funciona.
Todas as idéias? Obrigado.
Solução
Set Clip
a um Rectangle
que contém as dimensões da tela.
Cursor.Clip = Screen.PrimaryScreen.Bounds;
Claro, isso não vai funcionar com configurações de duplo monitor, mas você começa a idéia.
Outras dicas
realmente a idéia é apenas configurá-lo para um novo retângulo
Cursor.Clip = new Rectangle();
Ele funciona independentemente da situação.
Tente isto: quando seus aplicativo é iniciado, obter o valor de Cursor.Clip
e guardá-lo como o valor unclipped. Então, quando você deseja redefinir o clip, atribuir o valor unclipped.
Atualizar : Nesta página diz que para soltar o cursor em VB.NET, é suficiente para fazer Cursor.Clip=Nothing
. Mas isso é estranho, já que Retângulo é uma estrutura e, portanto, não pode ser definido como nulo. Assim, em C #, talvez seria Cursor.Clip=Rectangle.Empty
ou Cursor.Clip=default(Rectangle)
?