public SignalChart(SignalController signal) : base() { view = signal.View; var chart = GenerateChart(); Controls.Add(chart); signal.ViewChanged += () => { Controls.Remove(chart); chart = GenerateChart(); Controls.Add(chart); }; }
private Button GetAddButton(SignalController signalState) { var button = new Button { Height = frameHeight - 10, Width = Width - 20, Text = "Добавить" }; button.Click += (sender, ev) => { var creatingDialog = new AddSignalDialog(signalState).ShowDialog(); }; return(button); }
public ApplicationState() { Signal = new SignalController(); }
public AddSignalDialog(SignalController signal) { //фиксирование размеров Width = 400; Height = 600; FormBorderStyle = FormBorderStyle.FixedDialog; opts = new SignalOptions(0, signal.Internal.Size); var table = new TableLayoutPanel(); table.RowStyles.Add(new RowStyle(SizeType.Percent, 20)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 20)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 20)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 20)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 20)); table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); var startField = new SubscribedField("Начало: ", "Начало сигнала должно быть целым положительным числом.", opts.Start.ToString()); var durField = new SubscribedField("Продолжительность:", "Продолжительность сигнала должна быть целым положительным числом.", opts.Duration.ToString()); var freqField = new SubscribedField("Частота повторения ():", "Частота повторения сигнала должна быть действительным числом.", opts.Freq.ToString()); var multField = new SubscribedField("Множитель:", "Множитель сигнала должен быть действительным числом.", opts.Mult.ToString()); var constField = new SubscribedField("Константа:", "Константа сигнала должна быть действительным числом. ", opts.Const.ToString()); var container = new OptionsParser { Start = startField, Duration = durField, Frequency = freqField, Mult = multField, Const = constField }; var okButton = new Button { Text = "Создать" }; okButton.Click += (sender, ev) => { opts = container.GetOptions(); if (opts == null) { ThrowErrors(container.ErrorMessages); } else { try { signal.AddSignal(new SinSignal(opts)); Close(); } catch (ArgumentException ex) { ThrowErrors(ex.Message); } } }; var cancelButton = new Button { Text = "Отмена" }; cancelButton.Click += (sender, ev) => { Close(); }; //надпись об ошибке errorLabel = new Label { Text = "", ForeColor = Color.Red, AutoSize = true }; table.Controls.Add(startField, 0, 0); table.Controls.Add(durField, 1, 0); table.Controls.Add(freqField, 0, 1); table.Controls.Add(multField, 1, 1); table.Controls.Add(constField, 0, 2); table.Controls.Add(okButton, 0, 3); table.Controls.Add(cancelButton, 1, 3); table.Controls.Add(errorLabel, 0, 4); table.Dock = DockStyle.Fill; Controls.Add(table); }