none
Redimensionar e reorientar o form e os componentes. RRS feed

  • Pergunta

  • Pessoal, tenho uma aplicação que precisa rodar tanto na tela vertical quanto na tela horizontal (quando o usuário do pocket pressiona o rotate da tela). Gostaria de saber se há alguma solução para desenvolver isso. Porque do contrário eu teria que verificar constantemente em qual orientação está a tela e realinhar e reorientar todos os meus componentes da tela (picturebox, buttons, labels, textbox etc etc etc) para adequa-los à nova orientação. Utilizo o VS2005. Obrigado.
    sexta-feira, 25 de janeiro de 2008 19:09

Todas as Respostas

  • Ninguém tem uma idéia?
    Nem de como monitorar a orientação da tela?
    Obrigado.
    segunda-feira, 28 de janeiro de 2008 19:10
  • Pessoal, consegui encontrar uma solução não muito "elegante". Mais para quem um dia tiver a mesma dúvida segue o link: http://www.devx.com/wireless/Article/21590/1954?pf=true
    Só achei estranho ele aproveitar todo o InitiatizeComponent() do form auxiliar... pois a cada resize da tela ele instancia novamente todos os componentes.
    Alguma outra dica será bem vinda... porquê me "falaram" que "acham" que o VS2005 tem como gerenciar isso melhor.
    Obrigado.
    terça-feira, 29 de janeiro de 2008 12:55
  • Olá andré,

     

     Voce já verificou as propriedades Dock e Anchor dos controles ?

     

    Abraços

    Julio Tsukamoto

     

    terça-feira, 29 de janeiro de 2008 13:31
  • André,

    Vc pode monitorar o evento de mudança de tela atraves de "SystemState".
    Com relação ao compomentes eu geralmente utilize a propriedade Anchor = "Top, Left, Right"

    Ex.

    Code Snippet

    ..
    ..
    using Microsoft.WindowsMobile.Status;

    namespace DeviceApplication1
    {
        public partial class Form1 : Form
        {
            private SystemState Tela = new SystemState(SystemProperty.DisplayRotation, true);

            public Form1()
            {
                InitializeComponent();

                this.Tela.ComparisonType = StatusComparisonType.AnyChange;
                this.Tela.Changed += new ChangeEventHandler(Tela_Changed);

            }

            void Tela_Changed(object sender, ChangeEventArgs args)
            {
                label3.Text = "Tela = " + args.NewValue;
            }

        }
    }


    quinta-feira, 31 de janeiro de 2008 17:11
  • Dá uma lida neste artigo:

    Developing Orientation and dpi Aware Applications for the .NET Compact Framework
    link http://msdn2.microsoft.com/en-us/library/ms838174.aspx

    José Roberto Siqueira
    RMGR Soluções e Serviços em Mobile
    +55 11 7612-1268 Claro // +55 11 8491-4386
    terça-feira, 5 de fevereiro de 2008 14:05