5 лекция Шигрин Алексей. Лекция Цель задания Создание многооконного приложения
Скачать 156.11 Kb.
|
Лекция 5. Цель задания: Создание МНОГООКОННОГО ПРИЛОЖЕНИЯ Form1. Код: namespace WindowsFormsApplication2 { public partial class Form1 : Form { public static int[,] a = new int[6, 6]; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Random rnd = new Random(); for (int i = 0; i < 6; i++) { for (int j = 0; j < 4; j++) { a[i, j] = rnd.Next() % 201 - 100; } } for (int i = 0; i < 6; i++) { if (Math.Abs(a[i, 0] - a[i, 2]) == Math.Abs(a[i, 1] - a[i, 3])) a[i, 4] = 1; else a[i, 4] = 0; a[i, 5] = Math.Abs(a[i, 0] - a[i, 2]) * Math.Abs(a[i, 1] - a[i, 3]); } } private void button2_Click(object sender, EventArgs e) { int y; Form2 f2 = new Form2(); f2.ShowDialog(); } private void button3_Click(object sender, EventArgs e) { Form3 f3 = new Form3(); f3.ShowDialog(); } private void button4_Click(object sender, EventArgs e) { Form4 f4 = new Form4(); f4.Show(); } } } Скриншот приложения: Form2. Код: namespace WindowsFormsApplication2 { public partial class Form2 : Form { public static int i, j; public static string kop; public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { for (i = 0; i < 6; i++) { dataGridView1.Rows.Add(); for (j = 0; j < 6; j++) { dataGridView1.Rows[i].Cells[j].Value = Form1.a[i, j].ToString(); } if (Form1.a[i, 4] == 0) dataGridView1.Rows[i].Cells[4].Value = "Прямоугольник"; else dataGridView1.Rows[i].Cells[4].Value = "Квадрат"; } } private void button2_Click(object sender, EventArgs e) { Close(); } private void button3_Click(object sender, EventArgs e) { string elem = ""; bool ok; int k; for (i = 0; i < 6; i++) for (j = 0; j < 4; j++) { do { ok = true; try { elem = dataGridView1.Rows[i].Cells[j].Value.ToString(); Form1.a[i, j] = int.Parse(elem); } catch (Exception any) { Form5 f5 = new Form5(); if (f5.ShowDialog() == DialogResult.OK) k = 0; dataGridView1.Rows[i].Cells[j].Value = kop; ok = false; } } while (!ok); } for (i = 0; i < 6; i++) { if (Math.Abs(Form1.a[i, 0] - Form1.a[i, 2]) == Math.Abs(Form1.a[i, 1] - Form1.a[i, 3])) Form1.a[i, 4] = 1; else Form1.a[i, 4] = 0; Form1.a[i, 5] = Math.Abs(Form1.a[i, 0] - Form1.a[i, 2]) * Math.Abs(Form1.a[i, 1] - Form1.a[i, 3]); } dataGridView1.Columns.Clear(); DataGridViewColumn column; for (int i = 0; i < 6; i++) { column = new DataGridViewTextBoxColumn(); column.DataPropertyName = "Column" + i.ToString(); column.Name = "Column" + i.ToString(); dataGridView1.Columns.Add(column); } } } } Скриншот приложения: При нажатии кнопки создания массива: Form 3. Код: namespace WindowsFormsApplication2 { public partial class Form3 : Form { public Form3() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Close(); } private void Form3_Paint(object sender, PaintEventArgs e) { int ax, ay, bx, by; Pen myPen = new Pen(Color.Blue, 2); Graphics g = e.Graphics; g.DrawLine(myPen, 0, 100, 200, 100); g.DrawLine(myPen, 100, 0, 100, 200); myPen = new Pen(Color.Red, 2); for (int i = 0; i < 6; i++) { if (Form1.a[i, 0] < Form1.a[i, 2]) ax = Form1.a[i, 0]; else ax = Form1.a[i, 2]; if (Form1.a[i, 1] < Form1.a[i, 3]) ay = Form1.a[i, 1]; else ay = Form1.a[i, 3]; bx = Math.Abs(Form1.a[i, 0] - Form1.a[i, 2]); by = Math.Abs(Form1.a[i, 1] - Form1.a[i, 3]); g.DrawRectangle(myPen, ax + 100, ay + 100, bx, by); } } } } Скриншот приложения: Form4. Код: namespace WindowsFormsApplication2 { public partial class Form4 : Form { public Form4() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Close(); } } Скриншот программы: Form 5. Код: namespace WindowsFormsApplication2 { public partial class Form5 : Form { public Form5() { InitializeComponent(); label1.Text = "a[" + Form2.i.ToString() + "," + Form2.j.ToString() + "]= ?"; } private void button1_Click(object sender, EventArgs e) { Form2.kop = textBox1.Text; Close(); } } } Скриншот программы: Вывод: Мы научились создавать многооконные приложения с помощью форм, а так же связывать их посредством кнопок button. Вопросы для Самопроверки. Multiple Document Interface — тип графического интерфейса в компьютерной отрасли. MDI — проприетарный формат Microsoft для хранения растровых изображений. В случаях, когда форма является основной для многооконного приложения. Image ПКМ > Add > Windows Form Project > Add Windows Form Диало́говое окно́ (англ. dialog box) в графическом пользовательском интерфейсе — специальный элемент интерфейса, окно, предназначенное для вывода информации и (или) получения ответа от пользователя. Мода́льное окно́ в графическом интерфейсе пользователя — окно, которое блокирует работу пользователя с родительским приложением до тех пор, пока пользователь это окно не закроет. 7. Form.Show(); 8. Rslt = Form.ShowDialog(); 9. Переход на 5ую форму 10. dataGridView |