private void lstConverts_SelectedIndexChanged(object sender, EventArgs e) { var item = lstConverts.SelectedItem as ListBoxItem; var converter = _converters[(ConverterEnum)item.Value]; if (_currentConverter != null) { foreach (var control in _currentConverter.Controls) { if (control is Control ctrl) { ctrl.Visible = false; } } } _currentConverter = converter; foreach (var control in converter.Controls) { if (control is Control ctrl) { ctrl.Visible = true; } } }
private void CreateControls(IMyImageConverterWithParams <MyImage> converter) { for (int i = 0; i < converter.NumberOfParams; i++) { var lbl = new Label { Text = converter.ParamNames[i], Name = "lbl" + converter.ParamNames[i], Visible = false }; var txtb = new TextBox { Name = "txt" + converter.ParamNames[i], Text = "", Visible = false }; converter.Controls.AddRange(new Control[] { lbl, txtb }); } PutControlsToPanel(converter.Controls.Select(x => x as Control).ToList()); }