. 1 Додавання кулі
Додавання кулі виконується з використанням розробленого діалогового вікна класу Form:
private void button1_Click (object sender, EventArgs e)
{
//змінна, хранящея напрямок руху шаровv=0;
//створення діалогового окнаDialog=new Form2 ();
//установка початкових значень компонентов.Text= Додавання кулі raquo ;;. Radius_TB.Text= raquo ;;. Speed_TB.Text= raquo ;;
//виклик вікна і визначення резултат його роботи (Dialog.ShowDialog () == DialogResult.OK)
{(Dialog.radioButton1.Checked)=- 1; (Dialog.radioButton2.Checked)=1;
//додавання нового кулі=new Shar (Space, Space.nextN,
Convert.ToInt32 (Dialog.Speed_TB.Text) ,. ToInt32 (Dialog.Radius_TB.Text));
//збереження номера доданого кулі передача в _lastnum.nextN=satellite.num;
//додавання кулі в список отображенія.Items.Add (satellite); _ ED (true);
2.2 Редагування параметрів кулі
Редагування параметрів куль здійснюється з використанням діалогового вікна того ж класу, що і при додаванні трикутника.
Редагуються параметри кулі обраного в списку куль.
private void button2_Click (object sender, EventArgs e)
{
//перевірка наявності куль (listBox1.SelectedIndex!=- 1)
{
//створення діалогової формиDialog=new Form2 () ;. Text= Зміна параметрів кулі raquo ;;
//запам'ятовування параметрів шараsatel=listBox1.SelectedItem as Shar; .Radius_TB.Text=Convert.ToString (satel.radS) ;. Speed_TB.Text=Convert.ToString (satel.speed); (satel.v == - 1) .radioButton1.Checked=true; .radioButton2.Checked=true;
//запам'ятовування змінених значень (Dialog.ShowDialog () == DialogResult.OK)
{. Hide () ;. S_picture.Refresh () ;. radS=Convert.ToInt32 (Dialog.Radius_TB.Text) ;. speed=Convert.ToInt32 (Dialog.Speed_TB.Text); ( Dialog.radioButton1.Checked) .v=- 1; (Dialog.radioButton2.Checked) .v=1;
}. Show ( не встановлено кулю для редагування );
. 3 Видалення кулі
Операція видалення можлива тільки в ситуації, коли в списку обраний кулю.
private void button3_Click (object sender, EventArgs e)
if (listBox1.SelectedIndex!=- 1)
//запам'ятовування параметрів шараsat=listBox1.SelectedItem as Shar;
//перед видаленням необхідно стерти видаляється шар.Hide () ;. S_picture.Refresh ();
//видаляємо шар.Items.RemoveAt (listBox1.SelectedIndex) ;. Show ( не визначена кулю для видалення );
//якщо в списку немає елементів, то
//заборона дій _ED (false);
2.4 Переміщення кулі
Переміщення кулі відбувається по траєкторії у вигляді кола, який у свою чергу рухається за допомогою таймера. При спрацьовуванні таймера відбувається рух куль.
private void timer1_Tick (object sender, EventArgs e)
{(int i=0; i lt; listBox1.Items.Count; i ++)
{= listBox1.Items [i] as Shar; .colball=Color.Blue; .Move ();
. 5 Збереження стану програми
При збереженні параметрів програми використовуються стандартні діалогові вікна для вибору файлу.
private void button4_Click (object sender, EventArgs e)
{
//підготовка діалогового окна.FileName= raquo ;;
//виклик діалогового вікна і визначення результатів його роботи (saveFileDialog1.ShowDialog () == DialogResult.OK)
{
//зупинка таймера, для того щоб під час запису не відбулося переміщення шаров.Enabled=false;
//блок try..finally для гарантованого запуску таймера після збереження
{
//визначення розширення файлу (new FileInfo (saveFileDialog1.FileName) .Extension == .dat )
{
//створення бінарного потоку даних (BinaryWriter bw=new BinaryWriter (new FileStream (this.saveFileDialog1.FileName, FileMode.Create)))
{
//збереження стану області рісованія.Save (bw);
//збереження кількості шаров.Write (listBox1.Items.Count);...