Coordenadas dos Formulários do Windows
O sistema de coordenadas de um Formulário do Windows é baseada nas coordenadas do dispositivo, e a unidade básica de medida do desenho em Formulários do Windows é a unidade do dispositivo (normalmente, o pixel). Pontos na tela são descritos por pares de coordenadas x e y, com coordenadas x aumentando para a direita e coordenadas y aumento de cima para baixo. O local da origem, em relação à tela, irá variar dependendo se você estiver especificando coordenadas da tela ou do cliente.
Coordenadas da Tela
Um aplicativo de Formulários do Windows especifica a posição de uma janela na tela em coordenadas da tela. Para coordenadas da tela, a origem é o canto superior esquerdo da tela. A posição completa de uma janela é geralmente descrita por uma estrutura Rectangle que contém em coordenadas da tela dois pontos que definem os cantos superior esquerdo e inferior direito da janela.
Coordenadas do Cliente
Um aplicativo de Formulários do Windows especifica a posição de pontos em um formulário ou controle usando coordenadas do cliente. A origem para as coordenadas do cliente fica no canto superior esquerdo da área cliente do controle ou formulário. As coordenadas do cliente certificam que um aplicativo possa usar valores de coordenadas consistentes ao desenhar em um formulário ou controle, independentemente da posição do formulário ou controle na tela.
As dimensões da área cliente também são descritas por uma estrutura Rectangle que contém a área em coordenadas do cliente. Em todos os casos, a coordenada superior esquerda do retângulo está inclusa na área cliente, enquanto a coordenada inferior direita está exclusa. Operações de elementos gráficos não incluem bordas direita e inferior de uma área cliente. Por exemplo, o método FillRectangle preencherá até a borda direita e inferior do retângulo especificado, mas não incluirá essas bordas.
Mapeando de um Tipo de Coordenada para o Outro
Ocasionalmente, você talvez precise mapear coordenadas da tela para coordenadas do cliente. Você pode facilmente fazer isso usando os métodos PointToClient e PointToScreen disponíveis na classe Control. Por exemplo, a propriedade MousePosition do Control é relatada em coordenadas da tela, mas convém convertê-los para coordenadas do cliente.