Обработчики событий главной формы

Режим создания массива 6 прямоугольников можно реализовать в главной форме, а отображение результатов работы этого режима в формах 2 и 3.

Исходный код главной формы будет иметь следующий вид:

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 WindowsFormsApplication1

{

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();

}

}

}

При создании массива, в столбец 5 будем записывать информацию о прямоугольнике: 0 – квадрат, 1 – обычный прямоугольник, а в столбец 6, значение площади прямоугольника.

В нашем проекте запланировано несколько форм. Естественно возникает вопрос можно ли открывать одновременно несколько форм и как переходить с одной формы на другую? Ответ на этот вопрос зависит от того как было открыто окно.

Каждое окно (форма) можно открыть как модальное (как "диалоговое окно") или как немодальное (как обычное окно).

Если окно открывается методом Show(), то это задает обычное окно; если окно открывается методом ShowDialog(), то оно открывается как диалоговое окно. В чем разница? Из диалогового окна нельзя выйти, не закончив диалог и не закрыв форму. Открыв диалоговое окно, нельзя переключиться на работу с другой формой, не закончив диалог. Закрыть диалоговое окно можно разными способами. Можно щелкнуть по крестику, расположенному в правом верхнем углу формы или специальной кнопкой.

Если форма открыта методом Show, как не диалоговое окно, то, не закончив работу с открытой формой, можно перейти в главную форму или другую немодальную форму, поработать там, нажав какие-нибудь командные кнопки, получив нужную информацию, а затем снова вернуться к исходной форме.

В нашем приложении мы используем оба способа открытия окон форм.

Для закрытия окна можно также применять два метода – Hide() и Close(). Первый из этих методов скрывает форму, второй закрывает. Для диалоговых окон можно применять как метод Hide(), так и метод Close(): эффект будет одинаков – диалоговое окно будет закрыто.

Метод Hide() можно применять и для немодальных форм, открытых методом Show(). Окно, открытое не для диалога, можно временно скрыть, вызвав метод Hide(), а затем показать, вызвав метод Show().

Еще одно замечание, связанное с закрытием форм. Когда закрывается главная форма, закрываются все открытые к этому времени формы и приложение заканчивает свою работу. Когда же закрывается любая другая форма, закрывается только эта форма, остальные формы остаются открытыми.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: