private void cmbTypes_SelectedIndexChanged(object sender, System.EventArgs e) { if (cmbTypes.SelectedItem == null) { return; } panelParameters.Controls.Clear(); string[] parameters = Parameters(); if (parameters == null) { return; } int i = 0; foreach (string param in parameters) { Label label = new Label(); label.Text = param + ": "; label.Left = 10; label.Top = 10 + i * 24; label.TextAlign = ContentAlignment.MiddleRight; panelParameters.Controls.Add(label); TextBox box = new TextBox(); box.Left = 112; box.Top = label.Top; box.Width = 290; box.Name = "box_" + param.Replace(" ", "_"); string v; if (_values.TryGetValue(box.Name, out v)) { box.Text = v; } box.TextChanged += new EventHandler(box_TextChanged); if (param.ToLower().IndexOf("password") == 0) { box.PasswordChar = '*'; } panelParameters.Controls.Add(box); if (param.ToLower() == "file" || param.ToLower() == "folder") { GetPathButton button = new GetPathButton( ((param.ToLower() == "file") ? GetPathButton.GetPathButtonType.file : GetPathButton.GetPathButtonType.folder), box ); button.Filter = ((ConnectionItem)cmbConnections.SelectedItem).FileFilter(cmbTypes.Text); panelParameters.Controls.Add(button); } if (_initialConnString != null) { if (_initialConnString.GetUserData(param) != null) { box.Text = _initialConnString.GetUserData(param).ToString(); } } i++; } this.Height = panel1.Height + panel2.Height + panel3.Height + i * 24 + 40; }