Как динамически изменить размер окна в мобильном приложении? - PullRequest
1 голос
/ 07 октября 2010

Я занимаюсь разработкой мобильного приложения на C #.Я использую функцию запуска клавиатуры для запуска клавиатуры на мобильном устройстве, когда одно из текстовых полей становится сфокусированным.Я использую следующий код.

private void inputPanel1_EnabledChanged(object sender, EventArgs e)
        {
            InputEnabled();
        }

        private void InputEnabled()
        {
            int y;

            if (inputPanel1.Enabled)
                // SIP visible - position label just above the area covered by the input panel  
                y = Height - inputPanel1.Bounds.Height;
            else
                // SIP not visible - position label just above bottom of form
                y = Height;

            // Calculate the position of the top of the label
            //y = y - mainPanel.Height;
            //this.Dock = DockStyle.Top;
            //mainPanel.Location = new Point(0, y);
            this.Size = new Size(this.Size.Width, y);
            this.AutoScroll = true;

            //this.AutoScrollPosition = new Point(this.AutoScrollPosition.X, descriptionTextBox.Location.Y);
        }

В приведенном выше коде я пытаюсь динамически изменять высоту формы окна.Я добавил точку останова в своем приложении.В следующем утверждении

this.Size = new Size(this.Size.Width, y);

я вижу, что значение y изменяется на 180 в правой части.Но в левой части значение этого this.Size остается неизменным.Я совершенно не понимаю, почему это происходит.Можете ли вы сказать мне, что в моем коде что-то не так, или вы можете предоставить мне решение для изменения значения height в операторе this.size слева?

1 Ответ

2 голосов
/ 07 октября 2010

Изменение размера формы в приложении WinMobile может быть сложным, и я бы предпочел избежать его, если в этом нет крайней необходимости.

В этом случае вместо изменения размера формы вы можете разместить элементы управления на панели и изменить их размер.панель.Вы также можете использовать подход для использования мягкой панели ввода здесь: http://www.christec.co.nz/blog/archives/42

Измените размер панели, пристыкованной к нижней части формы, чтобы она соответствовала высоте SIP.Это перемещает другие элементы управления, также прикрепленные к нижней части формы, чтобы быть выше области, покрытой SIP.

...