【发布时间】:2013-05-11 22:16:42
【问题描述】:
我从 Oracle 数据库中提取结果并将其存储在 DataTable 中,然后再将其设置为 DataGridView 中的源。这样做的原因是我在向用户展示之前删除了一些列。使用 DataGridViewButtonColumn 我添加了使用户能够“编辑”特定行的列。我的问题是我试图根据当前行中的值禁用该按钮。保持启用其余行按钮。
var table = OracleConnection.Results(myquery);
table.Columns.Remove("Comments");
var editButton = new DataGridViewButtonColumn;
editButton.Value = "Edit";
editButton.Text = "Edit";
editButton.UseColumnTextForButtonValue = true;
_dtgvResults.Source = table;
_dtgvResults.Columns.Add(editButton);
【问题讨论】:
-
这在 MSDN 上得到了相当全面的回答:msdn.microsoft.com/en-us/library/ms171619.aspx 你基本上需要处理 cellvaluechanged 事件,检查列,然后更改单元格(加上他们添加了一个新属性以允许按钮实际出现禁用)
-
查看示例后,我不确定我是否想通过做所有这些来禁用一个按钮。我可能只处理 CellContentClick 上 row 的值,以确定我应该继续还是返回。
-
经过更多搜索后,我决定从 ButtonColumn 更改为文本列,并在表单的其他位置添加按钮。现在我只是在单击按钮时修改文本值。
标签: c# datagridview datagridviewbuttoncolumn