如何判断datagridview列是图像列还是复选框列

本文关键字:图像 复选框 datagridview 何判断 判断 | 更新日期: 2023-09-27 17:57:44

我正在尝试创建一个自定义函数,将数据网格视图的内容保存到一个文件中。我这样做而不是序列化,因为我的自定义函数被设计为尽可能简单快速地实现,以保存和加载winform的状态,并且每次我想序列化对象时创建自定义类并不是尽可能简单快捷。

要做到这一点,我需要通过编程检测数据网格视图中的哪些列是图像列或复选框列,这样我就知道如何在加载时正确处理它们。我在网上查了一下,似乎还没有其他人提到过它(就我在谷歌上搜索的结果而言),但我绝对相信有办法知道某个单元格/列是什么样的单元格/列。有人知道吗?

如何判断datagridview列是图像列还是复选框列

你可以做这样的事情-

        foreach (var col in dataGridView1.Columns)
        {
            if (col is DataGridViewImageColumn)
            {
                // Image Column
            }
            if (col is DataGridViewCheckBoxColumn)
            {
                // CheckBox Column
            }
        }

只需与类型进行比较:

        DataGridView dgv = new DataGridView();
        foreach (DataGridViewColumn col in dgv.Columns)
        {
            if (col.GetType() == typeof(DataGridViewCheckBoxColumn))
            {
                // do something
            }
            else if (col.GetType() == typeof(DataGridViewImageColumn))
            {
                // do something else
            }
        }
foreach (DataGridViewRow dr in dataGridView1.Rows) {
  foreach (DataGridViewCell dc in dr.Cells) {
    if (dc.GetType() == typeof(DataGridViewImageCell)) {
    }
  }
}

这应该有效。。。包括牢房!!!

这应该可以工作。

 For each col in datagridview.columns   
   If col.CellType.Name = "DataGridViewImageColumn" Then
   'do something
   End If
 Next

您可能还想了解

column.ValueType

这就是我正在使用的:

Dim colType As Type = DataGridView1.Columns(0).GetType
If colType.Name = "DataGridViewImageColumn" Then
'code for image column type
End If

学分:链接到VB论坛