Namespace Диалоговые_окна. Public partial class Form1 : Form




Разработаем программу, которая в процессе работы позволяет изменять размеры главного окна (его ширину и высоту) на значения, ввод которых выполняется в диалоговом окне.

Задание по разработке такой программы можно сформулировать следующим образом:

1. Создать меню с командами Ввод данных, Изменение размеров, Выход. Команда Изменение размеров при запуске приложения недоступна.

При выборе команды Выход приложение завершает работу. При выборе команды Ввод данных открывается диалоговое окно, содержащее:

– два поля ввода типа TextBox с метками По горизонтали, По вертикали;

– группу из двух переключателей Уменьшение, Увеличение типа RadioButton;

– две кнопки типа Button.

2. Обеспечить возможность ввода значений в поля Размер по горизонтали и Размер по вертикали. Значения интерпретируются как количество пикселей, на которое нужно изменить размеры главного окна: увеличить или уменьшить в зависимости от положения переключателей.

После ввода значений команда Изменение размеров становится доступной. При выборе этой команды размеры главного окна увеличиваются или уменьшаются на введенное в диалоговом окне количество пикселей.

Вид главного окна и диалогового окна работающего приложения показан на рис. 5.1, а код программы приведен в листингах 5.1 и 5.2.

 

а

б

Рис. 5.1. Демонстрация работы приложения:

а – главное окно; б – диалоговое окно

Листинг 5.1. Код файла Form1.cs главной формы приложения

Namespace Диалоговые_окна

{

Public partial class Form1: Form

{

// hor – величина изменения размера по горизонтали

// wer – величина изменения размера по вертикали

int hor, wer;

// m – признак уменьшения размера

// b – признак увеличения размера

 

bool m, b;

Public Form1()

{

InitializeComponent();

}

 

// Щелчок по пункту меню Изменение размеров

Private void изменениеРазмеровToolStripMenuItem_Click(object sender,

EventArgs e)

{

if (b == true)

{

Height += wer;

Width += hor;

}

if (m == true)

{

Height -= wer;

Width -= hor;

}

this.изменениеРазмеровToolStripMenuItem.Enabled = false;

}

 

// Щелчок по пункту меню Выход

Private void выходToolStripMenuItem_Click(object sender, EventArgs e)

{

Close();

}

 

// Щелчок по пункту меню Ввод данных

Private void вводДанныхToolStripMenuItem_Click(object sender,

EventArgs e)

{

Form2 f = new Form2(); // Создать обьект второй формы

// Если вторая форма видима и пользователь нажал закончил ввод данных

// в ней

if (f.ShowDialog() == DialogResult.OK)

{

// то получить из второй формы величину изменения по горизонтали

hor = f.H;

// получить из второй формы величину изменения по вертикали

wer = f.W;

// получить из второй формы направление изменения «уменьшение»

m = f.R1;

 

// получить из второй формы направление изменения «увеличение»

b = f.R2

//Сделать доступным пункт меню для изменения размеров окна

this.изменениеРазмеровToolStripMenuItem.Enabled = true;

}

}

}

}

Листинг 5.2. Код файла Form2.cs диалогового окна

Namespace Диалоговые_окна

{

Public partial class Form2: Form

{

int h, w;

Public Form2()

{

InitializeComponent();

}

// Метод-свойство для получения размера изменения по горизонтали

public int H

{

Get

{

return h;

}

}

 

// Метод-свойство для получения размера изменения по вертикали

Public int W

{

Get

{

return w;

}

}

// Метод-свойство для получения значения состояния первой радиокнопки

Public bool R1

{

Get

{

return radioButton1.Checked;

}

}

 

// Метод-свойство для получения значения состояния второй радиокнопки

public bool R2

{

Get

{

return radioButton2.Checked;

}

}

 

// Щелчок по кнопке Ввод

private void button1_Click(object sender, EventArgs e)

{

Try

{

h = Convert.ToInt32(textBox1.Text);

}

Catch (FormatException)

{

MessageBox.Show("Ошибка ввода размера по горизонтали!");

return;

}

Try

{

w = Convert.ToInt32(textBox2.Text);

}

Catch (FormatException)

{

MessageBox.Show("Ошибка ввода размера по вертикали!");

return;

}

if (radioButton1.Checked == false && radioButton2.Checked ==

False)

{

MessageBox.Show("Вы не задали направление изменения!");

return;

}

}



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-09-06 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: