我如何找到作为datagridview指定行和列的一部分的单元格的值?

问题描述 投票:0回答:2

我如何找到指定列和行的部分?

我有一个datagridview作为表格,如下图所示。

enter image description here

在datagridview中,单元格包含规则。 (TE',1)表示它是规则TE',它是第一个规则。

我的任务就像我有一个表达式,例如i + i * i,并使用第一列中所示的“规则”,在datagridview中找到该单元格的值,该列是该列的第一个字符。表达式,哪一行是第二部分的第一个字符。我知道一开始听起来很废话,但是让我举个例子来清除它。

第一步是(i + i * i#,E#,空)。我检查了第一部分的第一个字符,它的i,我检查了第二部分的第一个字符,它的E,我寻找了列i和行 E。它是(TE',1),所以在开始的步骤中,我将E替换为单元格值TE',并在第三部分添加数字1 ,一开始是空的。现在实际的“公式”就像:

(i + i * i#,TE',1)

我将第二部分替换为在单元格中找到的“规则”,并将规则编号添加到公式的第三部分。

下一步,我找到列i和行T的部分,它是(FT',4),所以我将T替换为FT' ,然后将数字4添加到第三部分。

((i + i * i#,FT'E'#,14)

现在,我查找列i和行F的部分,及其(i,8)。我再次进行替换。

((i + i * i#,iT'E'#,148)] >>

现在用于列i

和行i的弹出窗口,因此我从公式中删除了两者。

(+ i * i#,T'E'#,148)

现在我寻找列+

和行T' .......

整个过程在公式中只有

和数字(如(#,#,1942682))时结束。

我这样填充了datagridview(对此我也很抱歉。.

):
private void AddRows()
    {
        string[] header_Row = new string[] { "", "+", "*", "(", ")", "i", "#", };
        dataGridView.Rows.Add(header_Row);

        string[] E_Row = new string[] { "E", "", "", "(TÉ,1)", "", "(TÉ,1)", "" };
        dataGridView.Rows.Add(E_Row);

        string[] EComma_Row = new string[] { "É", "(+TÉ,2)", "", "", "(Eps,3)", "", "(Eps,3)" };
        dataGridView.Rows.Add(EComma_Row);

        string[] T_Row = new string[] { "T", "", "", "(FT',4)", "", "(FT',4)", "" };
        dataGridView.Rows.Add(T_Row);

        string[] TComma_Row = new string[] { "T'", "(Eps,6)", "(+FT',5)", "", "(Eps,6)", "", "(Eps,6)" };
        dataGridView.Rows.Add(TComma_Row);

        string[] F_Row = new string[] { "F", "", "", "(E,7)", "", "(i,8)", "" };
        dataGridView.Rows.Add(F_Row);

        string[] emptyRow = new string[] { };
        dataGridView.Rows.Add(emptyRow);

        string[] Plus_Row = new string[] { "+", "pop", "", "", "", "", "" };
        dataGridView.Rows.Add(Plus_Row);

        string[] Star_Row = new string[] { "*", "", "pop", "", "", "", "" };
        dataGridView.Rows.Add(Star_Row);

        string[] StartingBracket_Row = new string[] { "(", "", "", "pop", "", "", "" };
        dataGridView.Rows.Add(StartingBracket_Row);

        string[] EndingBracket_Row = new string[] { ")", "", "", "", "pop", "", "" };
        dataGridView.Rows.Add(EndingBracket_Row);

        string[] i_Row = new string[] { "i", "", "", "", "", "pop", "" };
        dataGridView.Rows.Add(i_Row);

        string[] Hashmark_Row = new string[] { "#", "", "", "", "", "", "Elfogad" };
        dataGridView.Rows.Add(Hashmark_Row);
    }

所以问题是,如果我有第一个公式(i + i * i#,E#,空),如何在datagridview中搜索i

列和E行的部分,得到那个细胞的价值?

如何找到指定列和行的部分?我将datagridview作为表格,如下图所示。在datagridview中,单元格包含规则。 (TE',1)表示...

c# search datagridview datagridviewcolumn datagridviewrow
2个回答
1
投票

我不会尝试遵循程序正在执行的逻辑,而是为了获得每个单元格的值,我将以下示例放在一起:


0
投票

如果只想遍历第一行,只需使用0作为索引。foreach(dataGridView1.Columns中的DataGridViewColumn col)字符串cellValue =(string)dataGridView1.Rows [0] .Cells [col.Index] .Value)

© www.soinside.com 2019 - 2024. All rights reserved.