から値を読み取ることができません:は、私はこれをやろうとしている動的に生成されたラジオボタンリスト
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#クラスの複数のインスタンス(作品)私は4つの変数/値を持つクラス「のSQLServer」を作成し
に値を追加します正常に動作します。 次に、このクラスの複数のインスタンスの配列を作成します。たとえば、レジストリに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]); }
どのように私はボタンが選択されたラジオキャプチャすることができ、どのように私は別のものに対応する値を転送私のプログラムのルーチン?
「OK」ボタンをクリックして、現在アクティブなラジオボタンの値を取得し、接続するデータベースを選択することに特に興味があります。
これを正しく行うには正しい方法ですか、それとも簡単な方法ですか? 私はC#を初めて使っているので、その可能性に精通しているわけではありません。
以下の回答が追加されています。それが問題を解決するか教えてください。 –