字符串到文本框

时间:2014-04-16 19:14:18

标签: c# textbox

我创建了一个允许我找到下一个空Box的方法:

public int CheckBox(int boxNum) {
        int BoxNumber = 0;

        TextBox[] itemBoxArray = new TextBox[] { itemBox0, itemBox1, itemBox2, itemBox3, itemBox4, itemBox5, itemBox6, itemBox7,
            itemBox8, itemBox9,itemBox10,itemBox11,itemBox12,itemBox13,itemBox14,itemBox15,};
        for (int i = 0; i < itemBoxArray.Length; i++)
        {
            if (String.IsNullOrEmpty(itemBoxArray[i].Text))
            {
                BoxNumber = i;
                i = 15;                    
            }
        }
        return BoxNumber;
    }

接下来我创建了一个按钮来检查空盒子是什么,我想在这个盒子里输入一些东西,但是我找不到将带有空盒子编号的字符串转换成该文本框的方法:

    private void StandAroundRebar_Click(object sender, EventArgs e)
    {
        int emptybox = CheckBox(0);
        string emptyboxString = emptybox.ToString();

        string newbox = "itemBox" + emptyboxString;

        MessageBox.Show("TextBox # " + newbox + " is empty ");

        var textbox = this.Controls.Find(newbox, true); 
    }
}

}

4 个答案:

答案 0 :(得分:5)

好吧,我宁愿改变CheckBox方法

public TextBox CheckBox() {   
        var itemBoxArray = new TextBox[] { itemBox0, itemBox1, itemBox2, itemBox3, itemBox4, itemBox5, itemBox6, itemBox7,
            itemBox8, itemBox9,itemBox10,itemBox11,itemBox12,itemBox13,itemBox14,itemBox15,};
        return itemBoxArray.First(m => string.IsNullOrEmpty(m.Text));//or  FirstOrDefault
    }

现在你会得到一个TextBox,并且可以用它做任何你想做的事。

答案 1 :(得分:1)

你需要这个功能: http://msdn.microsoft.com/de-de/library/486wc64h(v=vs.110).aspx

这将找到它,你所要做的就是施展它。 然后:

BoxNumber = i;
i = 15;  

该怎么办?您将i设置为框号,然后再将其设置为15 ?! 这不应该有效。

答案 2 :(得分:1)

为什么不直接返回TextBox对象?

public TextBox GetNextEmptyTextBox()
{
    return (new[] { textBox1, textBox2, textBox3 })
        .FirstOrDefault(tb => string.IsNullOrEmpty(tb.Text));
}

答案 3 :(得分:0)

您需要Control.ControlCollection.Find而不是强制转换为TextBox。

TextBox newBox = this.Controls.Find("itemBox1", true).FirstOrDefault() as TextBox;

找到Box后,您可以设置文字:

newBox.Text = "my text";