首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从文本框的数组中获取值并将其推送到二维数组?

如何从文本框的数组中获取值并将其推送到二维数组?
EN

Stack Overflow用户
提问于 2020-05-14 18:38:56
回答 1查看 42关注 0票数 0

我创建一个矩阵,大小取决于用户,我生成随机数。问题是如何从文本框数组中获取所有值,并将它们写入另一个数组。或者也许有一种更合理的方法?但事实是,我需要能够以行和列的方式“行走”。用于创建矩阵的表单

代码语言:javascript
复制
public void gen__matrix()
{
    int row = Convert.ToInt32(txt_row.Text);
    int col = Convert.ToInt32(txt_col.Text);
    int[,] ar_matrix = new int[row, col];

    addTextBox(row, col, ar_matrix);
}

具有值的TextBox矩阵本身

代码语言:javascript
复制
public void addTextBox(int row, int col, int[,] ar_matrix)
{
    Random rnd = new Random();

    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            double rnd_val = rnd.Next(1, col + 1);
            TextBox textboxEdit = new TextBox();

            int pos_x_lb = 10;
            int pos_x_lb_step = 85;

            int pos_y_lb = 10;
            int pos_y_lb_step = 30;

            textboxEdit.Size = new Size(80, 20);
            textboxEdit.Name = Convert.ToString(row + i);
            textboxEdit.Text = Convert.ToString(Math.Round(rnd_val, 3));
            textboxEdit.Font = new Font(textboxEdit.Font.FontFamily, 12);
            textboxEdit.TextAlign = HorizontalAlignment.Center;

            textboxEdit.Location = new Point(pos_x_lb + (j * pos_x_lb_step), pos_y_lb + (pos_y_lb_step * i));
            panel1.Controls.Add(textboxEdit);
        }
    }
}
EN

Stack Overflow用户

发布于 2020-05-14 21:03:03

一种方法是将事件处理程序附加到textChangedEvent。这需要你事先知道你想要更新的矩阵。

代码语言:javascript
复制
textboxEdit.TextChanged += (o, e) =>
        {
            ar_matrix[i, j] = int.TryParse(textboxEdit.Text, out var num) ? num : ar_matrix[i, j];
        };

另一种方法是设置每个文本框的Tag属性

代码语言:javascript
复制
textboxEdit.Tag = (i, j);

并遍历设置了tag属性的所有文本框:

代码语言:javascript
复制
foreach (var textBox in panel.Controls.OfType<TextBox>())
        {
            if (textBox.Tag is ValueTuple<int, int> indices && 
                int.TryParse(textBox.Text, out var num))
            {
                ar_matrix[indices.Item1, indices.Item2] = num;
            }
        }

免责声明:所有代码都未经测试

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61795254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档