c# - C#中使用字符串调用变量

标签 c# string

我正在尝试使用循环来编辑多个文本框的数据,但我不知道如何将内容为我的框名称的字符串转换为访问每个框的文本元素。

       private void reset_Click(object sender, EventArgs e)
    {
        string cell;
        for(int i = 0; i < 9; i++)
        {
            for (int j = 0; j < 9; j++)
            {
                cell = "c" + Convert.ToChar(i) + Convert.ToChar(j);
                cell.text = "";
            }
    }

我的文本框被命名为“c00, c01, .... c87, c88”,这就是我的“单元格”变量的内容在每次迭代中的内容,但是上面的代码不起作用,因为它试图访问显然没有意义的字符串的“文本”元素。

显然我可以单独清除每个框的内容,但由于我将有多个事件会更改文本框的内容,因此最好能够实现一个循环来执行此操作,而不是为 81 行每个事件。

最佳答案

使用数组要好得多。像这样的二维数组:

TextBox[,] textboxes = ...

private void reset_Click(object sender, EventArgs e)
{
    for(int i = 0; i < textboxes.GetLength(0); i++)
    {
        for (int j = 0; j < textboxes.GetLength(1); j++)
        {
            textboxes[i,j].Text = "";
        }
    }
}

或者像这样的锯齿状数组:

TextBox[][] textboxes = ...

private void reset_Click(object sender, EventArgs e)
{
    for(int i = 0; i < textboxes.Length; i++)
    {
        for (int j = 0; j < textboxes[i].Length; j++)
        {
            textboxes[i][j].Text = "";
        }
    }
}

关于c# - C#中使用字符串调用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18434263/

相关文章:

sql - SQL按字符串的中间部分分组

java - 如何使用java在字符串中创建多个元素?

c# - 如何使用 NAudio 对内存中的音频流 (byte[]) 进行重采样?

c# - 暂停和恢复线程的替代方法有哪些?

c# - 使用 DotNetZip 通过响应将 Zip 文件发送到客户端

java - Java 中的单元测试多行字符串

c - C 中的字符串错误

c# - 如何在多个对象之间共享一个值? C#

c# - EF 6 Code First 对象生命周期/信号/事件

python - cython中不同字符串的相同内存地址