объявить с модификатором public. По умолчанию используется модификатор private.
private void Form1_Load(object sender, EventArgs e) {
LogonForm LogonFrm = new LogonForm();
if (LogonFrm.ShowDialog() == DialogResult.Cancel) {
LogonFrm.Dispose();
this.Close();
} else {
this.Text += ' - ' + LogonFrm.txtCheck.Text;
LogonFrm.Dispose();
}
}
После того как форма авторизации будет отображена на экране, нужно обработать события Click
для нажатия кнопки проверки введенного имени пользователя или кнопки отмены. Первая кнопка проверяет правильность ввода имени. Если проверка завершилась успешно, то возвращается значение DialogResult.OK
. Это иллюстрирует код, приведенный в листинге 7.4.
private void butOK_Click(object sender, EventArgs e) {
if (txtCheck.Text == 'Alex') {
this.DialogResult = DialogResult.OK;
} else {
MessageBox.Show('В доступе отказано. Попробуйте еще раз',
'Вход в программу');
}
}
Если пользователь не знает имени для доступа к программе, то ему придется нажать кнопку Отмена
. В этом случае обработчик события butCancel_Click
, код которого приведен в листинге 7.5, возвращает значение DialogResult.Cancel
в главную форму, которая закрывает приложение.
private void butCancel_Click(object sender, System.EventArgs e) {
this.DialogResult = DialogResult.Cancel;
}
Создание заставки Splash Screen
Многие программы имеют так называемые заставки (splash screen). При загрузке формы сначала отображается окно с логотипом компании, названием продукта и дополнительной информацией. Следует реализовать приложение с подобным экраном, чтобы научиться использовать эту технологию.
Прежде всего надо создать новый проект и добавить к уже имеющейся форме еще одну форму с именем Splash
. При запуске приложения заставка появится во весь экран с заданным текстом в центре экрана. Эта форма будет отображаться в течение трех секунд, а затем она автоматически закроется и на экране останется основная форма.
Создание подобного окна практически не отличается от предыдущего примера. Но в этом примере надо использовать таймер, который будет отвечать за появление и закрытие начальной заставки. Эта же форма будет использоваться как диалоговое окно для стандартного пункта меню О программе
.
Итак, надо создать дополнительную форму AboutForm
и задать значения всех необходимых свойств окна. На форме надо расположить таймер, интервал срабатывания которого будет равен 3 с. Код, реализующий подобное поведение программы, приведен в листинге 7.6.
protected override void OnPaint(PaintEventArgs e) {
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
Graphics g = e.Graphics;
g.DrawString('.NET Compact Framework', this.Font,
new SolidBrush(Color.Blue), Screen.PrimaryScreen.Bounds, sf);
}
private void timer1_Tick(object sender, EventArgs e) {
this.Close();
}
В событии OnPaint
формы AboutForm
нужно установить свойства для вывода текста. При желании можно добавить отображение логотипа. Через заданный интервал таймер просто закроет это окно. Код для основной формы MainForm
приведен в листинге 7.7.
public MainForm() {
InitializeComponent();
#if DEBUG
MinimizeBox = false;
#else
MinimizeBox = true;
#endif
AboutForm about = new AboutForm();
about.ShowDialog();
}
private void mnuAbout_Click(object sender, EventArgs e) {
AboutForm about = new AboutForm();
about.ShowDialog();
}
Теперь при запуске приложения на экране сначала будет отображаться заставка. После истечения трех секунд она исчезнет, и пользователь увидит основную форму.
Поворот экрана
Устройства с операционной системой Pocket PC 2003 Second Edition и старше обрели долгожданную возможность поворачивать содержимое экрана. Раньше пользователям приходилось устанавливать дополнительные программы для достижения такого эффекта. А разработчики получили возможность управлять поворотами экрана управляемыми методами только в .NET Compact Framework 2.0. Но зато теперь это можно сделать буквально одной строкой кода. Тем, кто по ряду причин должен по-прежнему использовать .NET Compact Framework 1.0, придется задействовать сложный код с вызовами функций API,