如何判断datagridview列是图像列还是复选框列
本文关键字:图像 复选框 datagridview 何判断 判断 | 更新日期: 2023-09-27 17:57:44
我正在尝试创建一个自定义函数,将数据网格视图的内容保存到一个文件中。我这样做而不是序列化,因为我的自定义函数被设计为尽可能简单快速地实现,以保存和加载winform的状态,并且每次我想序列化对象时创建自定义类并不是尽可能简单快捷。
要做到这一点,我需要通过编程检测数据网格视图中的哪些列是图像列或复选框列,这样我就知道如何在加载时正确处理它们。我在网上查了一下,似乎还没有其他人提到过它(就我在谷歌上搜索的结果而言),但我绝对相信有办法知道某个单元格/列是什么样的单元格/列。有人知道吗?
你可以做这样的事情-
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论坛