首页
学习
活动
专区
工具
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 用于单元格显示超链接

3.8K20

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

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

3.8K10

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」表示头。

6.1K32

【转】基于C#的WinFormDataGridView控件操作汇总

属性(不是直接访问单元格)来确定单元格所在的行: 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.1K50

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

–数据表真实的字段 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#开发数据库应用程序

注意: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控件,并在其上添加四个按钮:添加、编辑、删除和保存。

1.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显示图片,可以进行如下操作:...;//标题居中显示 但实际的效果总是偏左了一点,原因是可以进行排序,排序标志符号标题上占了空间。

2.6K30

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、学生姓名、宿舍号

23630

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

DataGridView的DataGridViewComboBoxColumn点击一次,自动处于编辑状态

ComboBox,想要显示ComboBox的内容需要点击两到三次才可以。...这使操作变得很麻烦,降低了易用性,尤其是程序部署一些小型设备或者触摸屏设备上时,则更为不便。下面介绍两种方法解决这个问题。...首先,我们创建一个Windows应用程序,在窗体拖拽一个DataGridView控件,命名为dataGridView。要确保该控件的“启用编辑”选项勾选。下面我们动态创建,以及添加一行数据。...方法一: DataGridView控件的CellClick事件添加如下代码: CellClick事件 private void dataGridView_CellClick(object sender...} } } 方法二: DataGridView的CellEnter事件添加如下代码: CellEnter事件 private

2.6K11
领券