我如何找到指定列和行的部分?
我有一个datagridview作为表格,如下图所示。
在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(对此我也很抱歉。.
):列和E行的部分,得到那个细胞的价值?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
如何找到指定列和行的部分?我将datagridview作为表格,如下图所示。在datagridview中,单元格包含规则。 (TE',1)表示...
我不会尝试遵循程序正在执行的逻辑,而是为了获得每个单元格的值,我将以下示例放在一起:
如果只想遍历第一行,只需使用0作为索引。foreach(dataGridView1.Columns中的DataGridViewColumn col)字符串cellValue =(string)dataGridView1.Rows [0] .Cells [col.Index] .Value)