C# 在datagridview c中调用void函数#
如何在此dataC# 在datagridview c中调用void函数#,c#,datagridview,C#,Datagridview,如何在此datagridview中调用函数?我想在突出显示的datagridview中显示这两个的总和: foreach (DataRow row in dt.Rows) { datagridview_information.Rows.Add(); datagridview_information.Rows[counterSelected].Cells[0].Value = row["BrandName"].ToString();
gridview
中调用函数?我想在突出显示的datagridview
中显示这两个的总和:
foreach (DataRow row in dt.Rows) {
datagridview_information.Rows.Add();
datagridview_information.Rows[counterSelected].Cells[0].Value = row["BrandName"].ToString();
datagridview_information.Rows[counterSelected].Cells[1].Value = row["GenericName"].ToString();
datagridview_information.Rows[counterSelected].Cells[2].Value = row["PresDayOfIntake"].ToString();
datagridview_information.Rows[counterSelected].Cells[3].Value = row["Status"].ToString();
datagridview_information.Rows[counterSelected].Cells[4].Value = "5";
datagridview_information.Rows[counterSelected].Cells[5].Value = medicineLeft();
datagridview_information.Rows[counterSelected].Cells[7].Value = row["ContainerNumber"].ToString();
datagridview_information.Rows[counterSelected].Cells[8].Value = row["Status"].ToString(); ;
counterSelected++;
}
}
}
public int medicineLeft()
{
for (int i = 0; i < datagridview_schedule.Rows.Count; ++i)
{
medleft += Convert.ToInt32(datagridview_information.Rows[i].Cells[8]) - Convert.ToInt32(datagridview_medicine.Rows[i].Cells[4]);
datagridview_information.Rows[i].Cells[5].Value = Convert.ToString(medleft);
}
return medicineLeft();
}
foreach(数据行中的数据行){
datagridview_information.Rows.Add();
datagridview_信息。行[counterSelected]。单元格[0]。值=行[“BrandName”]。ToString();
datagridview_信息。行[counterSelected]。单元格[1]。值=行[“GenericName”]。ToString();
datagridview_信息。行[counterSelected]。单元格[2]。值=行[“PreDayOfInTake”]。ToString();
datagridview_信息。行[counterSelected]。单元格[3]。值=行[“状态”]。ToString();
datagridview_信息。行[counterSelected]。单元格[4]。Value=“5”;
datagridview_信息。行[counterSelected]。单元格[5]。值=medicineLeft();
datagridview_信息。行[counterSelected]。单元格[7]。值=行[“ContainerNumber”]。ToString();
datagridview_信息。行[counterSelected]。单元格[8]。值=行[“状态”]。ToString();
反选++;
}
}
}
公共int medicineLeft()
{
对于(int i=0;i
您必须在这里提供更多的代码,我完全不知道您想做什么。其他地方有申报吗
您的medicineLeft()方法正在返回自身,这意味着它将作为无限循环运行,并且可能会在此行引发StackOverflow异常:
datagridview_information.Rows[counterSelected].Cells[5].Value = medicineLeft();
您的medicineLeft方法需要返回一个整数-是否要返回medleft?如果是,将其更改为
return medlight
应该可以解决这个问题。一个简单的解决方案是更改填充DataGridView的方式。如果我这样做,我会做以下事情:
创建类对象以在网格中存储所需的数据:
public class Medicine
{
public string BrandName { get; set; }
public string GenericName { get; set; }
<... add other properties ...>
}
将集合绑定到DataGridView
datagridview_information.DataSource = GetMedicines(dt.Rows);
我发现很容易在表单上创建DataGridView
控件,在设计器中设置列,并在代码中将AutoGenerateColumns
属性设置为false
,以便网格显示如我所愿。这取决于你想如何处理
datagridview_information.DataSource = GetMedicines(dt.Rows);