Книга: Программирование КПК и смартфонов на .NET Compact Framework

Первые шаги

Первые шаги

После запуска Visual Studio .NET 2005 надо создать новый проект. При выборе типа проекта надо указать, что будет использоваться .NET Compact Framework 1.0. Для начала на форме следует разместить текстовое поле с именем txtEditor. Для свойства Multiline надо задать значение True, а свойство ScrollBars получит значение Both.

Так как текстовое поле обычно занимает все пространство формы, его нужно вручную растянуть до нужного размера. Учитывая, что я писал программу для конкретной модели мобильного устройства, большой ошибки в моих действиях не было. Но не будем забывать, что существуют другие устройства, размеры экрана у которых будут другими. Поэтому стоит устанавливать размеры элементов программно в соответствии с текущими размерами формы.

Также на первом этапе разработки надо указать позицию текстового поля и установить в нем фокус. Соответствующий код был добавлен в обработчик события Form_Load, что иллюстрирует листинг 7.30.

Листинг 7.30

private void MainForm_Load(object sender, EventArgs e) {
 // устанавливаем позицию текстового поля
 txtEditor.Location = new Point(0, 0);
 // Приравниваем размеры текстового поля к размерам формы
 txtEditor.Width = this.Width;
 txtEditor.Height = this.Height;
 // Устанавливаем фокус
 txtEditor.Focus();
}

Если бы программа создавалась для настольного компьютера, то написанный код не вызывал бы никаких сомнений. Но у КПК нет внешней клавиатуры, и для ввода текста используется панель ввода SIP. Поэтому на форму надо добавить элемент inputPanel. Так как при активации панель ввода закроет часть формы, то надо написать код для вычисления высоты текстового поля для этого случая и соответствующим образом изменить обработчик события Form_Load, как показано в листинге 7.31.

Листинг 7.31

private void MainForm_Load(object sender, EventArgs e) {
 ...
 // Высоту текстового поля устанавливаем в зависимости от SIP
 //txtEditor.Height = this.Height;
 SetTextBoxHeight();
}
// устанавливаем размеры текстового поля в зависимости от
// активности SIP
private void SetTextBoxHeight() {
 if (SIP.Enabled)
  txtEditor.Height = SIP.VisibleDesktop.Height + 2;
 else
  txtEditor.Height = this.Height;
}
private void SIP_EnabledChanged(object sender, EventArgs e) {
 SetTextBoxHeight();
}

Оглавление книги


Генерация: 0.036. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз