1

textboxes実行時に作成された値を取得できません。

ユーザーに から何かを選択してもらい、ボタンをクリックするたびに作成されるcheckedlistbox任意の値を入力してもらいます。textboxes

それらの名前を取得するにはどうすればよいtexboxesですか? 彼らは本当に存在しますか?私は初心者で、それらがどのように作成されているかを本当に理解していません。

これは私が作成する私のコードですtextboxes

    private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        int x = 466;
        int y = 84;
        foreach (var itemChecked in checkedListBox1.CheckedItems)
        {
            int i = 0;
            TextBox tb = new TextBox();
            tb.Location = new Point(x, y);
            tb.Name = "txtBox" + i++.ToString();
            Controls.Add(tb);
            y += 30;
     }
4

2 に答える 2

5

i外側に置くだけforeachで完了です。

int i = 0;
foreach (var itemChecked in checkedListBox1.CheckedItems)
{
    i++;
    string textBoxName = "textBox" + i.ToString();
    TextBox tb = new TextBox();
    tb.Location = new Point(x, y);
    //tb.Name = "txtBox" + i++.ToString(); <--Your Version
    tb.Name = textBoxName;
    //...
    //Other stuff or your codes
}
于 2013-02-15T12:27:06.160 に答える
1

正確な名前を検索するのではなく、コントロールを検索する文字列 (固定) を使用することができます。

その文字列(あなたの場合は 'textbox' )が見つかった場合、できることは、コントロールの名前でその固定文字列を検索することです。存在する場合は、動的に生成されたコントロールです。

foreach(Control c in parentControlIdOrName.Controls)
{
    if(c.GetType()==typeof(TextBox))
    {
        if(((TextBox)c).Name.indexOf("textbox")!=-1)
        {
            // do your coding here...what ever you want....
        }
    }
}

テストしていませんが、最善を願っています。それはうまくいくかもしれません。

于 2013-02-15T12:55:14.330 に答える