Я пытаюсь сделать это:Невозможно прочитать значение из динамически сформированного списка Button Radio
прочитал несколько значений из реестра Windows (работ). Это выглядит так:
\HKLM\...\Server1 int serverid 1 string serverName "SRVSQL01" int serverport 1433 string database "MyDatabase1" \HKLM\...\Server2 dword/int serverid 2 regsz/string serverName "SRVSQL02" dword/int serverport 1433 regsz/string database "MyDatabase2"
Количество серверов может отличаться.
Элементы списка. Я могу прочитать значения из реестра, это работает отлично
Добавить значения для нескольких экземпляров C# класса (работ)
Я создал класс «SQLServer» с 4 переменных/значений, как показано выше. Затем я создаю массив из нескольких экземпляров этого класса, например, если в реестре есть 4 сервера, я генерирую массив длиной 4 и добавляю значение каждого сервера к своей собственной сущности этого класса.
public class RegSQLListItem { public int MSSSQLID; public string MSSQLServer; public int MSSQLPort; public string MSSQLDatabase; }
дисплей список в новой форме генерирующих радиокнопок, на основе числа «пунктов» в массиве.
Я нашел некоторый код здесь, чтобы динамически генерировать список радио-кнопок с метками: https://msdn.microsoft.com/en-us/library/dwafxk44(v=vs.90).aspx
// Generate form int ProjectCounter = (RegProjectRoot.GetSubKeyNames()).Count(); // other code RadioButton[] radioButtons = new RadioButton[ProjectCounter]; for (int i = 0; i < ProjectCounter; ++i) { radioButtons[i] = new RadioButton(); radioButtons[i].TabIndex = i + 1; radioButtons[i].Name = ProjectListItem[i].MSSQLDatabase; radioButtons[i].Text = ProjectListItem[i].MSSQLDatabase; radioButtons[i].Location = new System.Drawing.Point(10, 10 + i * 20); this.Controls.Add(radioButtons[i]); }
Как я могу захватить который переключатель выбран и как я передать соответствующее значение в другой рутина в моей программе?
Мне особенно интересно нажать кнопку «ОК», чтобы зафиксировать значение активного переключателя в настоящий момент и поэтому выберите, к какой базе данных я хочу подключиться.
Это правильный способ сделать это вообще или есть более простой способ? Я новичок в C#, поэтому я не знаком с возможностями.
Я добавил ответ ниже. дайте мне знать, разрешит ли он проблему? –