private void Run_Button_Click(object sender, EventArgs e) { if (!Background_Worker.IsBusy) { Run_Button.Enabled = false; foreach (TextBox textbox in textboxes) { if (textbox != null) { textbox.Enabled = false; } } M_Row.Enabled = false; M_Column.Enabled = false; Componet_Container.Enabled = false; Constraint_Container.Enabled = false; Load_Excel_File.Enabled = false; Save_Excel_File.Enabled = false; Save_Excel_File_As.Enabled = false; Progress_Bar.Visible = true; Status.Text = "Running"; Background_Worker.RunWorkerAsync(); } }
private void Calculate(int y) { int row = Convert.ToInt32(textboxes[0, y].Text); string column = textboxes[1, y].Text; double minimum = Convert.ToDouble(textboxes[2, y].Text); double maximum = Convert.ToDouble(textboxes[3, y].Text); double precision = Convert.ToDouble(textboxes[4, y].Text); for (double i = minimum; i <= maximum; i += precision) { WorkSheet.Cells[row, column].Value2 = i; if (y == component - 1) { int progress_value = (int)Math.Floor(100.0 * Math.Abs(i - minimum) / (maximum - minimum)); Background_Worker.ReportProgress(progress_value); } if (y > 0) { Calculate(y - 1); } if (isMinimized) { Minimize(); } if (isMaximized) { Maximize(); } } }