none
Coordenadas centrais de uma PictureBox Seguindo Mouse RRS feed

  • Pergunta

  • Oi,

    Estou Criando um software onde preciso visualizar imagens de alta resolução em determinado ponto,

    em certo momento chamo um form que contem apenas uma PictureBox,

    essa picturebox vem carregada com uma imagem bem grande que precisaria em torno de 6 ou 8 monitores para ser vista no tamanho normal,

    eu consigo visualizar a imagem inteira usando as setas para alterar a localização da mesma no form sem problema algum,

    Mas para evitar de ficar teclando milhares de vezes no lado desejado, gostaria de fazer o centro da ir para o lado que o mouse apontar, seria como no visualizador de imagens do windows onde tu aperta o botão central do mouse e escolhe o lado que gostaria de arrastar a imagem.

     

    tenho um código provisório onde faço a imagem se mover segurando o botão esquerdo e colocando o mouse em um dos quadrantes da imagem, fazendo com que a imagem se mova para esse quadrante.

     

    private void pictureBoxZoom_MouseMove(object sender, MouseEventArgs e)
            {
                if((e.Button == MouseButtons.Left))
                {
                    Application.DoEvents();
    
                    if (e.Location.X >= pictureBox.Image.Width / 2)
                        pictureBox.Left = pictureBox.Left + 2;
                    else
                        pictureBox.Left = pictureBox.Left - 2;
    
                    if (e.Location.Y >= pictureBox.Image.Height / 2)
                        pictureBox.Top = pictureBox.Top + 2;
                    else
                        pictureBox.Top = pictureBox.Top - 2;
                } 
    

    eu não consigo pegar as coordenadas da Tela apenas da PictureBox, se eu conseguir pegar as coordenadas da tela quando clico na pictureBox seria de grande ajuda.

    terça-feira, 13 de dezembro de 2011 01:05

Todas as Respostas

  • Patrick,

    Pelo que entendi, você quer saber a posicao atual do mouse tendo como base o Form, certo? Se sim, você poderia obter a posicao atual do Mouse nesse mesmo evento MouseMove do PictureBox da seguinte maneira:

    private void pictureBoxZoom_MouseMove(object sender, MouseEventArgs e)
    {
        // Posicao atual do mouse tomando como base o Form
        Point pt = this.PointToClient((sender as Control).PointToScreen(e.Location));
    }
    
    



    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    quinta-feira, 15 de dezembro de 2011 12:57
    Moderador