我有一个有界的datagridview,一列从数据库中提取int。现在我很难告诉我的网格,当一个单元格超过' 1'作为一个价值,然后使它变得大胆。
这是我目前检查列的代码。这是一个表单加载事件。
DataGridViewCellStyle style = new DataGridViewCellStyle();
style.Font = new Font(dgvItems.Font.FontFamily,12, FontStyle.Bold);
foreach (DataGridViewRow row in dgvItems.Rows)
{
if (Convert.ToInt32(quantityDataGridViewTextBoxColumn.Text) > 1)
{
foreach (DataGridViewCell cell in row.Cells)
cell.Style.ApplyStyle(style);
}
}
答案 0 :(得分:0)
试试这个
DataGridViewCellStyle style = new DataGridViewCellStyle();
style.Font = new Font(dgvItems.Font.FontFamily, 12, FontStyle.Bold);
foreach (DataGridViewRow row in dgvItems.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
int result;
bool isInt = Int32.TryParse(cell.Value.ToString(), out result);
if (isInt && result > 1)
{
cell.Style = style;
}
}
}
- SJ
答案 1 :(得分:0)
不幸的是,没有自动表达式来对Winforms DataGridViews
中的单元格进行样式设置,因此您必须在代码中执行此操作。
您应该将样式代码分解出来,并在每次加载或更改数据时调用它。
这是一个例子;您可能想要更改limit
参数的数据类型并添加更多参数以允许更复杂的规则..:
void styleCells(DataGridView dgv, string columnName, int limit)
{
DataGridViewCellStyle style = new DataGridViewCellStyle();
style.Font = new Font(dgv.Font.FontFamily, 12, FontStyle.Bold);
foreach (DataGridViewRow row in dgv.Rows)
{
if (Convert.ToInt32(row.Cells[columnName].Value) > limit)
row.Cells[columnName].Style.ApplyStyle(style);
}
}
如果列名确实是quantityDataGridViewTextBoxColumn
,您可以这样称呼它:
styleCells(dgvItems, quantityDataGridViewTextBoxColumn, 1);