如何通过包含文本框对象名称的字符串变量引用存在的文本框?

时间:2013-09-29 14:10:12

标签: c# object casting reference textbox

public void findspecific(int winnerx, int winnery) 
{
   string ineed = "tb" + winnerx + winnery;
   ineed.text = "Something"; // --> this line isn't work because "ineed" is a string.
}

所有文本框名称都以“tb”和winsx和winnery开头  数字一起定位获胜者所在的文本框  我不能使用ineed.Text,因为它的字符串不是按钮引用。如何用“ineed”字符串引用tb(x)(y)按钮  变量?

3 个答案:

答案 0 :(得分:0)

可能是这样的。

public void findspecific(int winnerx, int winnery) 
{
    string ineed = "tb" + winnerx + winnery;
    if ( anyButton.Name.Equals(indeed))   //
    {
         anyButton.Text = "Something";
    }
}

答案 1 :(得分:0)

对于WinForms:

    public void findspecific(int winnerx, int winnery)
    {
        string ineed = "tb" + winnerx.ToString() + winnery.ToString();
        Control[] matches = this.Controls.Find(ineed, true);
        if (matches.Length > 0 && matches[0] is TextBox)
        {
            TextBox tb = (TextBox)matches[0];
            tb.Text = "Something";
        }
        else
        {
            MessageBox.Show(ineed, "No Match Found!");
        }
    }

答案 2 :(得分:-2)

我对WPF很新,但有些东西告诉我你不能这样做。 TEXTBOX是一个资源,它被分配了一个资源ID,使其成为CONST。在我的项目中,我不得不通过解析字符串并使用IF语句来更新相应的TEXTBOX来封装文本分配。