public Process(int size, string name)
 {
     this.size = size;
     this.name = name;
     my_hole   = null;
 }
        private void StartBtn_Click(object sender, EventArgs e)
        {
            MemorySize   = int.Parse(memory_size.Text);
            NumHoles     = int.Parse(number_holes.Text);
            NumProcesses = int.Parse(number_processes.Text);
            algorithm    = algorithm_type.Text;
            string processsizes = size_processes.Text;

            string[] process_sizes_array = processsizes.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            string   holesizes           = size_holes.Text;

            string[] hole_sizes_array  = holesizes.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            string   startingaddresses = starting_addresses.Text;

            string[] starting_addresses_array = startingaddresses.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            for (int i = 0; i < NumHoles; i++)           // insert Hole objects into Holes Arraylist
            {
                Hole temp = new Hole(int.Parse(hole_sizes_array[i]), int.Parse(starting_addresses_array[i]));
                Holes_list.Add(temp);
            }

            for (int i = 0; i < NumProcesses; i++)             //  insert Process objects into Processes Arraylist
            {
                Process temp1 = new Process(int.Parse(process_sizes_array[i]), "p" + (i + 1));
                Process_list.Add(temp1);
            }

            if (algorithm == "First Fit")
            {
                for (int i = 0; i < NumProcesses; i++)
                {
                    for (int j = 0; j < NumHoles; j++)
                    {
                        if (((Hole)Holes_list[j]).filled == false)                                 // if this hole is free
                        {
                            if (((Hole)Holes_list[j]).size >= ((Process)Process_list[i]).size)     // if the process can fit in this hole
                            {
                                ((Hole)Holes_list[j]).assigned_process = (Process)Process_list[i]; // assign the process to this hole
                                ((Process)Process_list[i]).my_hole     = (Hole)Holes_list[j];      // process save the hole which it fills

                                // Dispaly the change in colors here///////////////////////////////////////////
                                //// using ((Hole)Holes_list[j]).start  -> starting address of hole
                                //// and using ((Process)Process_list[i]).size  -> size of process

                                ((Hole)Holes_list[j]).filled = true;
                                break;
                            }
                        }
                    }
                }
            }
            else if (algorithm == "Best Fit")
            {
                for (int i = 0; i < Process_list.Capacity; i++)
                {
                    int index;
                    index = Best_fit(i);
                    if (fnflag == 1)
                    {
                        ((Hole)Holes_list[index]).assigned_process = (Process)Process_list[i];
                        ((Process)Process_list[i]).my_hole         = (Hole)Holes_list[index];
                        ((Hole)Holes_list[index]).filled           = true;
                        fnflag = 0;
                    }
                }
            }
            add_items_combobox();
            Print_listbox1();
        }