- •Содержание
- •Введение в программирование под Windows
- •Событийно-управляемое программирование
- •Шаблон Windows-приложения
- •Класс Control
- •Элементы управления
- •Метка Label
- •Кнопка Button
- •Поле ввода TextBox
- •Меню MainMenu и ContextMenu
- •Флажок CheckBox
- •Переключатель RadioButton
- •Панель GroupBox
- •Список ListBox
- •Предварительные замечания о формах.
- •Класс Form
- •Диалоговые окна
- •Класс Application
- •Краткое введение в графику
- •Индивидуальные задания
- •Вариант 0
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Пример выполнения варианта №0
Пример выполнения варианта №0
1.Задание
Создать меню с командами установки параметров прямоугольника, нарисовать, выйти.
Команда нарисовать недоступна. При выборе команды Выход приложение завершается. При выборе команды параметры открывается диалоговое окно, содержащее:
поля типа TextBox для ввода длин сторон прямоугольника и координат его левого верхнего угла;
– группу из трех флажков (Red, Green, Blue) типа RadioButton;
кнопку типа Button.
После задания параметров команда Рисовать становится доступной.
При выборе команды Рисовать в главном окне приложения выводится прямоугольник заданного размера и сочетания цветов или выдается сообщение, если введенные размеры превышают размер окна.
2.Листинг программы
//файл Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace lr9oop
{
public struct Rectangle
{
public int x;
public int y;
public int length;
public int width;
public Color color;
}
public partial class Form1 : Form
{
private Rectangle rect;
public Rectangle Rect
{
set
{
rect = value;
}
}
public Form1()
{
InitializeComponent();
}
private void quitToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void setToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.ShowDialog(this);
paintToolStripMenuItem.Enabled = true;
}
private void paintToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
if (rect.x < 0 || rect.x + rect.length > this.Size.Width ||
rect.y < 0 || rect.y + rect.width > this.Size.Height)
throw new Exception("Заданны неподходящие размеры прямоугольника");
Graphics g = this.CreateGraphics();
g.FillRectangle(new SolidBrush(rect.color), rect.x, rect.y, rect.length, rect.width);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
//файл Form2.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace lr9oop
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
radioButton1.Select();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
Rectangle rect = new Rectangle();
rect.length = Int32.Parse(textBox1.Text);
rect.width = Int32.Parse(textBox2.Text);
rect.x = Int32.Parse(textBox3.Text);
rect.y = Int32.Parse(textBox4.Text);
if (radioButton1.Checked)
rect.color = Color.Green;
if (radioButton2.Checked)
rect.color = Color.Blue;
if (radioButton3.Checked)
rect.color = Color.Red;
Form1 p = (Form1)this.Owner;
p.Rect = rect;
this.Close();
}
catch
{
MessageBox.Show("Необходимо ввести целые числа!");
}
}
}
}
3.Результат выполнения