【发布时间】:2019-07-30 09:19:54
【问题描述】:
我有一个名为Patient Complaints 的表单。我创建了一些投诉复选框并添加了一个按钮。此外,我还按所有投诉的名称向 DataGridView 添加了列。
当用户使用 CheckBoxes 检查投诉然后单击按钮时,我需要做什么,这些值应插入 DataGridView 的特定列中。
例如,如果用户检查了三个投诉,如Smoking、Chest Pain、Fatigue,则这三个值应作为一行添加到其特定列中,如Smoking 将添加到@987654326 @、Chest Pain 将作为单行添加到“ChestPainColumn”列等等。
有什么办法吗?
我之前尝试过这种方式向 DataGridView 添加新行:
this.dgViewPComplaints.Rows.Add("Value1", "Value2", "Value3");
但当时我在所有列中插入值,现在我只需要在特定列中插入值。
【问题讨论】:
-
DataRow newRow = this.dgViewPComplaints.Rows.Add(); newRow["吸烟"] = "Value1"; newRow["胸痛"] = "Value2"; newRow["疲劳"] = "Value3";
-
无法将类型“int”隐式转换为“system.data.datarow”。此错误出现在“this.dgViewPComplaints.Rows.Add();”上这条线。有什么解决办法?
-
如果您的 DGV 的 DataSource 仅包含这些 投诉,您可以使用
List<Complaint>作为 DGV 的 DataSource,其中Complaint是一个类对象。您可以将其属性与每个 Column 的DataPropertyName关联。使用 CheckBoxes 将相应的类属性设置为真/假。单击 Button 时,将新的Complaint类对象添加到List<Complaint>。将 GDV 和类对象设置为您需要的任何输出(例如,Yes/No、Color.Red/Color.Green 等)。 -
@Jimi 我的 DataGridView 没有任何数据源。它只是一个数据网格,我在其中以编程方式添加行。
-
是的,但重点是:您的 DGV 中是否只有这些 CheckBox 定义的值?如果是,我的建议很容易设置、处理和维护。试一试。
标签: c# winforms datagridview