根据现有值更改 dataGridView 中的值

2024-06-28

我正在重新制作我的客户拥有的应用程序(这意味着我没有创建原始应用程序),其中一个请求是简化 dataGridView 之一中显示的数据(数据是从现有数据库中提取的)。问题在于,在该显示器使用的数据表中,其中一列代表某种产品的一种使用类型,并由普通数字表示。到目前为止,我的客户必须从另一份文档中读取特定数字的含义。现在他希望我用描述性字符串替换这些数字(他向我发送了一个列表,描述哪个数字引用哪个描述),但我不允许更改数据库。如何更改该列的内容(仅在我的 dataGridView 中,不在数据库中)以显示文本而不是数字?

Thanks


通常的方法是使用CellFormatting http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellformatting.aspx事件的DataGridView.

这是一个简单的例子:

dataGridView1.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView1_CellFormatting);

void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.Value == null)
        return;

    string stringValue = (string)e.Value;
    stringValue = stringValue.ToLower();

    if (e.Value == "1")
    {
        e.Value = "string for one";
        e.FormattingApplied = true;
    }
}

eventargs 有一个 ColumnIndex 属性,您可以使用该属性来确保仅设置正确的列格式。

需要注意的一点是,每当单元格绘制时都会引发此单元格格式化事件,因此您不应该在事件处理程序中做繁重的工作。例如,对您的值进行数据库查找将是一个很大的错误!而是将其存储在内存字典中。

单元格格式化事件不会影响基础数据,因此您的数据源中仍将包含整数。

有关此事件的更多信息请参见 MSDNhere http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellformatting.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据现有值更改 dataGridView 中的值 的相关文章

随机推荐