Режим создания массива 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().
Еще одно замечание, связанное с закрытием форм. Когда закрывается главная форма, закрываются все открытые к этому времени формы и приложение заканчивает свою работу. Когда же закрывается любая другая форма, закрывается только эта форма, остальные формы остаются открытыми.