2017-09-27 111 views
-1

我试图做一个DataGridView一些操作,这样数学运算的datagridview

object value1 = matematicaDataGridView[1, 0].Value; 
object value2 = matematicaDataGridView[2, 0].Value; 

int val1, val2; 
if (int.TryParse(value1.ToString(), out val1) && int.TryParse(value2.ToString(), out val2)) 
{ 
    matematicaDataGridView[3,0].Value = val1 - val2; 
} 
else 
{ 
    MessageBox.Show(" invalid inputs."); 
} 

我从单行得到的结果,我怎样才能从DataGridView中的所有行的结果?

+0

你在做什么数学运算?你能解释一下你的代码到底在做什么吗? –

+1

在循环中使用变量而不是文字,e,g'matematicaDataGridView [i,j]'。 – Sinatr

+0

你知道如何使用for循环吗? –

回答

0

你必须使用循环使用计数器变量(r)通过行迭代,并在每一行上执行代码:

for(int r=0; r<matematicaDataGridView.Rows.Count; r++) 
{ 
    object value1 = matematicaDataGridView[1, r].Value; 
    object value2 = matematicaDataGridView[2, r].Value; 

    int val1, val2; 
    if (int.TryParse((string)value1, out val1) && int.TryParse((string)value2, out val2)) 
    { 
     matematicaDataGridView[3, r].Value = val1 - val2; 
    } 
    else 
    { 
     //MessageBox.Show(" invalid inputs."); 
    } 
} 

由于value1可以为空,value1.ToString()可能会引发异常。为了避免它,你可以用(string)value1来代替。