Листинг 1. Распределения. Код. ч.2

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Collections;
 
namespace Законы_распределения
{
    public partial class frmChoice : Form
    {
        //контроллы для распределений
        usrcAll
 cnlAll;
        usrc05
 cnl05;
        usrcNorm
 cnlNrm;
        //главный переключатель
        private Распределения.SwitchOn sOn;
        private Законы_распределения.Общие.Global Gl;
        //
        private int idChoice = 10;
        private string txtInfo = "";
        private string infoFile = "";
        //
        public frmChoice(Законы_распределения.Распределения.SwitchOn sOn,
            Законы_распределения.Общие.Global Gl)
        {
            InitializeComponent();
            //принимаем 
параметры
            this.Gl = Gl;
            this.sOn = sOn;
            //создаем 
контролл
            cnlAll
 = new usrcAll();
            //добавляем в
 групбокс
            this.gprAllParams.Controls.Add(cnlAll);
 
        }
        private void btStart_Click(object sender, 
EventArgs e)
        {
            Go();
        }
        private bool test()
        {
            //функция для
 проверки ошибок при заполнении
            if (sOn._rdChoice == 0)
            {
                this.rtxtInfo.Text = "Не указано 
распределение.";
                return false;
            }
            try
            {
                sOn._enVal._N = Convert.ToInt32(cnlAll.txtN.Text);
                sOn._enVal._Ntb = Convert.ToInt32(cnlAll.txtNtb.Text);
                sOn._enVal._MatO_T = Convert.ToSingle(this.txtMatO_En.Text);
                sOn._enVal._Sko_T = Convert.ToSingle(this.txtSko_En.Text);
                sOn._enVal._NeedExper = Convert.ToInt32(cnlAll.txtNExpere.Text);
                sOn._enVal._Otkl = Convert.ToSingle(cnlAll.txtOtkl.Text);
            }
            catch(System.Exception errMain)
            {
                this.rtxtInfo.Text = "Ошибка: " + errMain.Message.ToString() +
                    "\nПодсказка. 
Введены неверно значения: Количество СВ, количесвто интервалов, 
математическое ожидание, стандартное квадратическое отклонение.";
                return false;
            }
            //переключатель
 для определения характера ошибок
            switch (sOn._rdChoice)
            {
                case 10://Равномерный
                    {
                        try
                        {
                            sOn._enVal._IntL = Convert.ToSingle(cnl05.txtIntL.Text);
                            sOn._enVal._IntR = Convert.ToSingle(cnl05.txtIntR.Text);
                        }
                        catch(FormatException)
                        {
                            this.rtxtInfo.Text="Проверьте 
вводимые параметры: Количесвто СВ";
                            return false;
                        }
                        break;
                    }
                case 11://Нормальный
                    {
                        try
                        {
                            sOn._enVal._MatO_T = Convert.ToSingle(cnlNrm.txtMatO.Text);
                            sOn._enVal._Sko_T = Convert.ToSingle(cnlNrm.txtSko.Text);
                        }
                        catch (FormatException)
                        {
                            this.rtxtInfo.Text = "Проверьте 
вводимые параметры: Мат. О, СКО.";
                            return false;
                        }
                        break;
                    }
            }
            return true;
        }
        private void btClose_Click(object sender, 
EventArgs e)
        {
            this.Close();
        }
 
        private void rb05_CheckedChanged(object sender, EventArgs e)
        {
            //Равномерное
            normText();
            cnlAll.txtNtb.Enabled = false;
            this.txtMatO_En.Enabled = false;
            this.txtSko_En.Enabled = false;
            idChoice
 = this.ActiveControl.TabIndex;
            cnl05
 = new usrc05(sOn._enVal);
            grpParams.Controls.Clear();
            grpParams.Controls.Add(cnl05);
            sOn._rdChoice
 = idChoice;
            //
            txtInfo
 = "Равномерное";
            this.rtxtInfo.Text = txtInfo;
            //открываем 
описание распределения
            infoFile
 = Application.StartupPath + @"\info\html\random.html";
            webBrowser1.Navigate(infoFile);
            //количество 
имеющихся записей в базе
            Gl._frmA.tsLblTotal.Text = txtRowsInDb();
        }
        private void rbNorm_CheckedChanged(object sender, EventArgs e)
        {
            //Нормальное
            normText();
            this.txtMatO_En.Enabled = false;
            this.txtSko_En.Enabled = false;
            idChoice
 = this.ActiveControl.TabIndex;
            cnlNrm
 = new usrcNorm(sOn._enVal);
            grpParams.Controls.Clear();
            grpParams.Controls.Add(cnlNrm);
            sOn._rdChoice
 = idChoice;
            //
            txtInfo
 = "Нормальное";
            this.rtxtInfo.Text = txtInfo;
            infoFile
 = Application.StartupPath + @"\info\html\norm.html";
            webBrowser1.Navigate(infoFile);
            //
            Gl._frmA.tsLblTotal.Text = txtRowsInDb();
        }
 
        private void normText()
        {
            cnlAll.txtNtb.Enabled = true;
            this.txtMatO_En.Enabled = true;
            this.txtSko_En.Enabled = true;
        }
        private void Go()
        {
            //метод для 
запуска расчетов
            if (!test())
            {
                return;
            }
            sOn._rdGen
 = rdStart.Checked;
            sOn._cnlAll
 = cnlAll;
            //передаем 
параметры дальше
            Gl._frmRes
 = new frmResult(sOn, cnlAll,
                cnl05, cnlNrm, Gl);
            //родитель
            Gl._frmRes.MdiParent = this.MdiParent;
            Gl._frmRes.Show();
            this.Close();
        }
 
        private void rdStart_CheckedChanged(object sender, EventArgs e)
        {
            this.cnlAll.chkAddDb.Enabled = true;
            this.cnlAll.txtNExpere.Enabled = true;
            this.cnlAll.chkVar.Enabled = true;
        }
 
        private void rdSelect_CheckedChanged(object sender, EventArgs e)
        {
            this.cnlAll.chkAddDb.Enabled = false;
            this.cnlAll.txtNExpere.Enabled = false;
            this.cnlAll.chkVar.Enabled = false;
        }
 
        private void groupBox1_Enter(object sender, 
EventArgs e)
        {
            this.grpStep3.Enabled = true;
            this.grpStep4.Enabled = true;
            this.grpStep6.Enabled = true;
            this.btStart.Enabled = true;
        }
 
        private void grpChoice_Enter(object sender, 
EventArgs e)
        {
            this.grpStep2.Enabled = true;
        }
        private string txtRowsInDb()
        {
            string strTxt = "В базе " + sOn.CountAllRowsTableDb().ToString() + " записи(ей)";
            return strTxt;
        }
    }
}