Como faço para limpar Cursor.Clip em C # e permitir que o cursor se mover livremente de novo?

StackOverflow https://stackoverflow.com/questions/1805260

  •  05-07-2019
  •  | 
  •  

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.

Foi útil?

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)?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top