public StandartOptionsPanel(TransformManager manager) : base() { transform = manager; var table = new TableLayoutPanel(); table.Dock = DockStyle.Fill; table.RowStyles.Add(new RowStyle(SizeType.Percent, 30)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 30)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 40)); table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); //число частот var freqCountPan = IFG.InitInputField("Кол-во частот:", (box) => { var iValue = 0; if (!TryAnyParse(box.Text, ref iValue)) { MessageBox.Show("Количество частот должно быть целым числом."); box.Text = opts.CountFreq.ToString(); } else { try { opts.CountFreq = iValue; } catch (ArgumentException ex) { MessageBox.Show(ex.Message); box.Text = opts.CountFreq.ToString(); } } }, opts.CountFreq); //шаг частоты var freqStartPan = IFG.InitInputField("Начальная частота:", (box) => { var dValue = 0d; if (!TryAnyParse(box.Text, ref dValue)) { MessageBox.Show("Стартовая частота должна быть десятичным числом."); box.Text = opts.StartFreq.ToString(); } else { try { opts.StartFreq = dValue; } catch (ArgumentException ex) { MessageBox.Show(ex.Message); box.Text = opts.StartFreq.ToString(); } } }, opts.StartFreq); //стартовая частота var freqStepPan = IFG.InitInputField("Сдвиг частоты:", (box) => { var dValue = 0d; if (!TryAnyParse(box.Text, ref dValue)) { MessageBox.Show("Сдвиг частоты должен быть десятичным числом."); box.Text = opts.StepFreq.ToString(); } else { try { opts.StepFreq = dValue; } catch (ArgumentException ex) { MessageBox.Show(ex.Message); box.Text = opts.StepFreq.ToString(); } } }, opts.StartFreq); //кнопка обновления var updateButton = new Button { Text = "Обновить", }; updateButton.Click += (sender, ev) => { Invalidate(); }; table.Controls.Add(freqStartPan, 0, 0); table.Controls.Add(freqStepPan, 1, 0); table.Controls.Add(freqCountPan, 0, 1); table.Controls.Add(new Panel(), 1, 1); table.Controls.Add(updateButton, 0, 2); table.Controls.Add(new Panel(), 1, 2); table.SetColumnSpan(updateButton, 2); Controls.Add(table); }
public OptionsPanel(TransformManager manager) : base() { transform = manager; var table = new TableLayoutPanel(); table.Dock = DockStyle.Fill; table.RowStyles.Add(new RowStyle(SizeType.Percent, 30)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 30)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 40)); table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); freqCount = transform.FreqSize; freqStart = transform.StartFreq; freqStep = transform.FreqStep; //число частот var freqCountPan = IFG.InitInputField("Кол-во частот:", (value) => { var iValue = 0; if (int.TryParse(value, out iValue)) { freqCount = iValue; } }, freqCount); //шаг частоты var freqStartPan = IFG.InitInputField("Начальная частота:", (value) => { var dValue = 0d; if (double.TryParse(value, out dValue)) { freqStart = dValue; } }, freqStart); //стартовая частота var freqStepPan = IFG.InitInputField("Изменение частоты:", (value) => { var dValue = 0d; if (double.TryParse(value, out dValue)) { freqStep = dValue; } }, freqStep); //кнопка обновления var updateButton = new Button { Text = "Обновить", }; updateButton.Click += (sender, ev) => { //TODO: здесь должен быть ворох исключений transform.SetParams(freqCount, freqStep, freqStart); }; table.Controls.Add(freqStartPan, 0, 0); table.Controls.Add(freqStepPan, 1, 0); table.Controls.Add(freqCountPan, 0, 1); table.Controls.Add(new Panel(), 1, 1); table.Controls.Add(updateButton, 0, 2); table.Controls.Add(new Panel(), 1, 2); table.SetColumnSpan(updateButton, 2); Controls.Add(table); }
private Panel InitFreqField() { return(IFG.InitDoubleField("Частота (тактов в повторе): ", (dTimes) => { freq = 1 / dTimes; }, freq)); }
private Panel InitConstField() { return(IFG.InitDoubleField("Константа: ", (dConst) => { c = dConst; }, c)); }
private Panel InitMultField() { return(IFG.InitDoubleField("Множитель: ", (dMult) => { mult = dMult; }, mult)); }
private Panel InitDurField() { return(IFG.InitDoubleField("Длительность: ", (dDur) => { dur = dDur; }, dur)); }
private Panel InitStartField() { return(IFG.InitDoubleField("Начало: ", (dStart) => { start = dStart; }, start)); }