首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在datagridview布尔列中显示图像,而不是0/1值

在datagridview布尔列中显示图像,而不是0/1值,可以通过自定义单元格的方式来实现。

首先,需要创建一个自定义的DataGridViewImageCell类,继承自DataGridViewImageCell,并重写其Paint方法。在Paint方法中,根据单元格的值绘制相应的图像。

代码语言:txt
复制
public class CustomImageCell : DataGridViewImageCell
{
    protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates cellState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)
    {
        // 根据值获取对应的图像
        Image image = GetImageFromValue(value);

        // 绘制图像
        if (image != null)
        {
            graphics.DrawImage(image, cellBounds.Location);
        }
    }

    private Image GetImageFromValue(object value)
    {
        // 根据值返回相应的图像
        if (value is bool)
        {
            bool boolValue = (bool)value;
            if (boolValue)
            {
                return Properties.Resources.TrueImage; // 替换为你自己的图像资源
            }
            else
            {
                return Properties.Resources.FalseImage; // 替换为你自己的图像资源
            }
        }

        return null;
    }
}

接下来,在DataGridView中使用自定义的单元格类。可以在DataGridView的CellFormatting事件中,将布尔值转换为图像显示。

代码语言:txt
复制
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (dataGridView1.Columns[e.ColumnIndex].Name == "BoolColumn")
    {
        if (e.Value != null && e.Value is bool)
        {
            bool boolValue = (bool)e.Value;
            if (boolValue)
            {
                e.Value = Properties.Resources.TrueImage; // 替换为你自己的图像资源
            }
            else
            {
                e.Value = Properties.Resources.FalseImage; // 替换为你自己的图像资源
            }
        }
    }
}

最后,将DataGridView的布尔列的单元格类型设置为自定义的单元格类型。

代码语言:txt
复制
DataGridViewImageColumn imageColumn = new DataGridViewImageColumn();
imageColumn.Name = "BoolColumn";
imageColumn.HeaderText = "Bool Column";
imageColumn.CellTemplate = new CustomImageCell();
dataGridView1.Columns.Add(imageColumn);

这样,布尔列中的值将以图像的形式显示,而不是0/1值。

请注意,上述代码中的Properties.Resources.TrueImage和Properties.Resources.FalseImage是示例中使用的图像资源,你需要替换为你自己的图像资源。另外,如果需要在腾讯云中实现类似功能,可以参考腾讯云的相关产品文档和示例代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DataGridView控件用法一:数据绑定

用DataGridView控件,可以显示和编辑来自多种不同类型的数据源的表格数据。 将数据绑定到DataGridView控件非常简单和直观,在大多数情况下,只需设置DataSource属性即可。...一、非绑定模式 所谓的非绑定模式就是DataGridView控件显示的数据不是来自于绑定的数据源,而是可以通过代码手动将数据填充到DataGridView控件中,这样就为DataGridView控件增加了很大的灵活性...与基于文本的值一起使用,在绑定到数字和字符串类型的值时自动生成 DataGridViewCheckBoxColumn 与boolean和checkState值一起使用,在绑定到这些类型的值时自动生成...DataGridViewImageColumn 用于显示图像,在绑定到字节数组、Image对象或Icon对象自动生成 DataGridViewButtonColumn 用于在单元格中显示按钮,不会在绑定时自动生成...,通常用来做未绑定列 DataGridViewComboBoxColumn 用户在单元格中显示下拉列表,不会在绑定时自动生成,通常需要手动进行数据绑定 DataGridViewLinkColumn 用于在单元格中显示超链接

4K20

c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

(DataGridView1.CurrentCell.RowIndex); *******另外,使用 DataGridView.CurrentCellAddress 属性(而不是直接訪问单元格)来确定单元格所在的行...// 设定 (0, 0) 为当前单元格 DataGridView1.CurrentCell = DataGridView1[0, 0]; 在整行选中模式开启时,你也能够通过 CurrentCell...******DataGridView 冻结列或行 1) 列冻结 DataGridViewColumn.Frozen 属性为 True 时, 该列左側的全部列被固定, 横向滚动时固定列不随滚动栏滚动而左右移动...新加行的默认值的设定 须要指定新加行的默认值的时候,能够在DataGridView.DefaultValuesNeeded事件里处理。...在该事件中处理除了能够设定默认值以外,还能够指定某些特定的单元格的ReadOnly属性等。

4.4K10
  • C#—— DataGridView控件的各种操作总结(单元格操作,属性设置)

    .CurrentCell.RowIndex); *******另外,使用 DataGridView.CurrentCellAddress 属性(而不是直接访问单元格)来确定单元格所在的行: DataGridView.CurrentCellAddress.Y...// 设定 (0, 0) 为当前单元格 DataGridView1.CurrentCell = DataGridView1[0, 0]; 在整行选中模式开启时,你也可以通过 CurrentCell 来设定选定行...3) 列宽和行高的最小值的设定 // 第一列的最小列宽设定为 100 DataGridView1.Columns[0].MinimumWidth = 100; // 第一行的最小行高设定为 50 DataGridView1...在该事件中处理除了可以设定默认值以外,还可以指定某些特定的单元格的ReadOnly属性等。... 事件处理方法的参数中、「e.ColumnIndex=-1」表示行头、「e.RowIndex=-1」表示列头。

    9.4K32

    【转】基于C#的WinForm中DataGridView控件操作汇总

    属性(而不是直接访问单元格)来确定单元格所在的行: DataGridView.CurrentCellAddress.Y 和列: DataGridView.CurrentCellAddress.X 。...// 设定 (0, 0) 为当前单元格 DataGridView1.CurrentCell = DataGridView1[0, 0]; 在整行选中模式开启时,你也可以通过 CurrentCell 来设定选定行...3) 列宽和行高的最小值的设定 // 第一列的最小列宽设定为 100 DataGridView1.Columns[0].MinimumWidth = 100; // 第一行的最小行高设定为 50 DataGridView1...******DataGridView 冻结列或行 1) 列冻结 DataGridViewColumn.Frozen 属性为 True 时, 该列左侧的所有列被固定, 横向滚动时固定列不随滚动条滚动而左右移动...在该事件中处理除了可以设定默认值以外,还可以指定某些特定的单元格的ReadOnly属性等。

    5.3K50

    可视化数据库设计软件有哪些_数据库可视化编程

    –数据表中真实的字段值 4)DataBinding.SelectValue:选择主表中连接字段。 5)ComboBox控件 1.作用 作用1:用下拉列表方式显示数据表中某字段值。...4)DataBinding.SelectValue:选择主表中连接字段。 6)DataGridView 控件 DataGridView 控件提供一种强大而灵活的以表格形式显示数据的方式。...5.DataGridView列的编辑 单击DataGridView控件的设计器中“编辑列”选项,或者在DataGridView控件的“属性”面板中单击Columns属性右侧的省略按钮,即可进入“编辑列...(1)添加与删除字段 在“编辑列”对话框左侧显示数据表字段名,用“添加”与“移除”按钮可添加或删除字段。 (2)改变字段位置 单击“改变字段位置”按钮,可改变字段在数据表控件中的位置顺序。...= dataGridView1.SelectedCells[0].Value.ToString();//被选择的单元格数组的第一个的值 textBox5.Text = dataGridView1

    6.7K40

    C#二十八 数据绑定

    在Windows中绑定是将操作界面和数据源的数据保持一致,即实现操作界面的增删改查与数据库的增删改查一致,这里所说的数据源指数据集或数据表,而窗体可以是Windows窗体或Web窗体,在这里,我们研究关于...如何使用DataGridView Ø DataGridView常用属性和方法 Ø 简单绑定 ​5.1 DataGridView控件​ 在项目开发中,怎么样将数据库的中数据显示到界面上呢...时列是否移动 ReadOnly 指定单元格是否为只读 ColumnCount DataGridView中显示的列数 RowCount DataGridView中显示的行数 Rows 所有控件的行 CurrentCell...直接绑定数据表 dataGridView1.DataSource=ds.Tables[0]; 二....绑定到数据集 dataGridView.DataSource=ds; dataGridView.DataMember=ds.Tables[0].TableName; 在第三种方式中,我们知道DataGridView

    11110

    使用C#开发数据库应用程序

    注意:C#中布尔类型的关键字与java不同,使用bool,C#中字符串数据类型是小写的。...b.使用基本控件 (1)标签【Lable】 属性:Image将在标签上显示的图像 Text在标签上显示的文本 (2)文本框(TextBox) 属性 MaxLenth 指定可以在文本框中输入的最大字符数...Multiline 表示是否可以在文本框中输入多行文本 PasswordChar 指示在作为密码框时,文本框中显示的字符,而不是实际输入的文本 ReadOnly 指定是否允许编辑文本框中的文本...指定如何处理图片的位置和控件的大小 图像列表的属性 Images 存储在图像列表中的所有图像 ImageSize 图像列表中图像的大小 TransparentColor 被视为透明的颜色 计时器的属性...菜单项(MenuItem)的主要属性和事件 DisplayStyle 指定是否显示图像和文本 Image 显示在菜单项上的图像 Text 显示在菜单项上的文本 事件 Click 单击事件,

    5.9K30

    【愚公系列】2023年11月 Winform控件专题 DataGridView控件详解

    e){ dataGridView1.Rows.Clear(); dataGridView1.Rows.Add(); dataGridView1.Rows[0].Cells[0].Value...使用RowTemplate属性可以在DataGridView控件中自定义行样式。可以在DataGridView中添加多个行,每行都可以有不同的样式。...具体步骤如下:打开Winform项目,拖拉一个DataGridView控件到窗体中;添加要显示的列,设置列的属性;设置RowTemplate属性,例如设置行背景颜色:dataGridView1.RowTemplate.DefaultCellStyle.BackColor...数据统计:DataGridView控件可以允许用户对数据进行统计,如求和、平均值、最大值、最小值等。可以通过编写代码来实现统计功能。...Step 2: 添加DataGridView控件在设计器中添加一个DataGridView控件,并在其上添加四个按钮:添加、编辑、删除和保存。

    2K11

    C#学习笔记——DataGridView功能总结

    1.只显示自定义列 dataGridView1.AutoGenerateColumns = false;//必须在代码中设置 2.禁止调整行、列大小 dataGridView1.RowHeadersWidthSizeMode...8.打造一个漂亮的DataGridView //样式 dataGridView1.RowHeadersVisible = false; //不显示行标题列 //dataGridView1.AutoSizeColumnsMode...;//单元格内容居中显示 //行为 dataGridView1.AutoGenerateColumns = false;//不自动创建列 dataGridView1.AllowUserToAddRows...dataGridView1.MultiSelect = false;//禁用多选 9.显示图片 通常,我们将图片路径保存在数据库中,但在dataGridView1中要显示图片,可以进行如下操作:...;//列标题居中显示 但实际的效果总是偏左了一点,原因是列可以进行排序,排序标志符号在列标题上占了空间。

    3K30

    WinForm 控件 DataGridView 常用操作

    1、取消列自动生成 在窗体load事件里面设置表格dataGridView的AutoGenerateColumns为 false dataGridView.AutoGenerateColumns = false...e) { //获取行对象 var row = dataGridView.Rows[e.RowIndex]; //对行的第一列value赋值 row.Cells[0]....- 40, e.RowBounds.Top + 4, 16, 16); } 7、转换单元格显示 在表格的CellFormatting事件里面进行转换操作,比如一个状态字段是int类型,显示需要转换成对应的字符串显示...]; //取得列值,如果是绑定的数据,可以将row.DataBoundItem转换成绑定对象再取值判断 var cell=row.cell[0].value.ToString...} } 9、修改单元格值,单行刷新重绘 //dgvBook.SelectedRows[0].Index 为要刷新的行号 dataGridView.InvalidateRow(dgvBook.SelectedRows

    1.8K30

    期末作业C#实现学生宿舍管理系统

    Cells[0].Value; //获取所在行第一列的元素 dataGridView1.Rows.RemoveAt(index); MessageBox.Show(aa.ToString()); 这一步的作用是获取到鼠标选中所在行的第一列元素的值...[0].RowIndex; //获取所在行 var aa = dataGridView1.Rows[index].Cells[0].Value; //获取所在行第一列的元素 dataGridView1....,用于点击修改时,弹出一个窗口供用户修改,设计图如下: 设计好后,回到Form4中,刚刚不是设计了删除嘛,修改和删除一样,先获取id值就可以,所以步骤是一样的,新建一个修改按钮,如下图所示:...id传给Form5窗口,我们在这里了解下通过构造函数传值 特点:传值是单向的(不可以互相传值),实现简单 接收窗体需要如下代码: (这里的id为string是因为我们在dataGridView1获取到的值类型为...,这样在切换过程中就不会感觉框的变化 ③设计可视化窗体(根据自己的需求自己来) 我们添加一个datagridview,然后对图中阴影部分右键【编辑列】 编辑列在添加id、学生姓名、宿舍号

    29730

    Excel催化剂开源第23波-VSTO开发辅助录入功能关键技术

    在Excel催化剂的几大辅助录入功能中(数据验证保护、数据多级联动输入、关键词模糊智能匹配输入)中,用了一些customxmlPart技术来存储配置信息,同时在关键词模糊智能匹配输入中,用了一个VSTO...输入过程中动态控制下方DataGridView的查找结果,用户可以按方向箭下上在结果中选择对应的条目,再按Enter或Tab键确定内容录入。...上,采用了迂回的隐藏时不是真隐藏,只是缩小成1*1像素大小,好像后来其他位置发现了更好解决方案,原代码没有来得及重新改过来。...FormFastInput.UscFastInput.IsFirstEnterDgv = true;//为了能够在首次为0时仍然是0而不是+1的效果...//缩小成1而不是隐藏,为了下次激活时可以顺利进入textbox激活 FormFastInput.InputUserControl.Height = 1; }

    1.3K10

    C# 可视化程序设计机试知识点汇总,DBhelper类代码

    类的查询方法,返回DataTable类型数据 DataTable dt = DBHelper.getDataTable(sql1); // DisplayMember为显示的文本值,ValueMember...控件中 this.dataGridView1.DataSource = dt; 选中DataGridView中的行,将所有列的数据一个个放入到文本控件中(cellClick事件)。...//在cellClick事件外定义typeID string typeID; //判断选中的行数是否>0 if (this.dataGridView1.SelectedRows.Count>0)...{ //”=”号左边给全局变量typeID赋值, ”=”号右边获得选中第一行第一列的值转为string类型(列标号以数据库中的顺序为准) typeID = this.dataGridView1....Text = this.dataGridView1.SelectedRows[0].Cells[1].Value.ToString(); //”=”号定义变量接收, ”=”号右边获得选中第一行第三列的值转为

    7.7K20

    C#实现WinForm DataGridView控件支持叠加数据绑定

    ,而不是实现,是因为他既可以是实现了IListSource的类型,也可以是实现了IList的类型,例如:List类型,DataTable类型等,这里就不一一列举了,今天我主要实现的功能如标题所描述的:实现...说白了就是支持数据的多次绑定,标准的绑定方法只支持单一绑定,即每次绑定均会清除原来的数据,而叠加数据绑定则可实现每次绑定均以附加的形式(原数据保留)添加到DataGridView控件中,这样就实现了分页加载...,但可完整显示已加载的所有数据,这种应用场景在C/S端很常见,B/S端上也有(例如QQ空间动态下面的加载更多按钮) 以下是实现附加数据两种方式: 第一种方式,采用反射获取属性值并循环添加数据行...方法种注释掉的方法是我写的显示遮罩层的方法,如果大家需要,可以查看我的这篇博文:Winform应用程序实现通用遮罩层 使用方法如下: 1.添加DataGridView控件,然后将DataGridView...2.设置DataGridView列,将列的DataPropertyName设置为需要绑定的数据字段名称,这步很重要。

    1.9K30
    领券