-1

以下のように、文字列をインデックスとして使用し、値のリスト オブジェクトを使用するデータ ディクショナリがあります。

Dictionary<string, List<string>> dataDict = new Dictionary<string, List<string>>();

また、20 個のテキスト ボックス (TextBox1、TextBox2、TextBox3 など) があります。

List オブジェクト内の値を 20 個のテキスト ボックスに割り当てるにはどうすればよいでしょうか (リスト オブジェクト内に 20 個の値が保持されていると仮定します)。

4

2 に答える 2

0

質問がきちんと理解できない気がしますが(特に辞書を持つ目的)、以下をご利用いただけます。

int i = 1;
List<string> values = dataDict["0"]; // gets the first item from the dictionary
foreach (string data in values)
{
    (this.Controls.Find("Textbox" + i, true)[0] as TextBox).Text = data;
    i++;
}
于 2012-08-27T14:10:59.193 に答える
0

TextBoxを次のようなコンテナコントロールに配置することをお勧めしますPanel

var allTextBoxes = txtPanel.Controls.OfType<TextBox>();
foreach(var kv in dataDict)
{
    String index = kv.Key;
    String values = String.Join(",", kv.Value);
    TextBox txt = allTextBoxes.FirstOrDefault(txt => txt.Name == "TextBox" + index);
    if(txt != null)
    {
        txt.Text = values;
    }
}
于 2012-08-27T14:07:40.237 に答える