首页
学习
活动
专区
圈层
工具
发布

每隔4行绘制一次Datagridview行

DataGridView是一种用于显示和编辑数据的控件,常用于Windows桌面应用程序的开发。它提供了一种表格形式的显示方式,可以展示数据集中的多行多列数据。

DataGridView的行绘制可以通过自定义绘制事件来实现。在每隔4行绘制一次的情况下,可以通过以下步骤来实现:

  1. 在DataGridView的Paint事件中添加自定义绘制逻辑。
  2. 遍历DataGridView的行集合,判断行的索引是否为4的倍数。
  3. 如果是4的倍数,则使用自定义的绘制方式绘制该行,否则使用默认的绘制方式绘制该行。

以下是一个示例代码,演示了如何实现每隔4行绘制一次DataGridView的行:

代码语言:txt
复制
private void dataGridView1_Paint(object sender, PaintEventArgs e)
{
    DataGridView dgv = (DataGridView)sender;
    int rowIndex = 0;
    int rowHeight = dgv.RowTemplate.Height;

    foreach (DataGridViewRow row in dgv.Rows)
    {
        if (rowIndex % 4 == 0)
        {
            // 自定义绘制方式
            using (SolidBrush brush = new SolidBrush(Color.LightBlue))
            {
                e.Graphics.FillRectangle(brush, new Rectangle(0, row.Index * rowHeight, dgv.Width, rowHeight));
            }
        }

        rowIndex++;
    }
}

在上述示例中,我们通过判断行索引是否为4的倍数来决定是否使用自定义的绘制方式。如果是4的倍数,我们使用浅蓝色填充该行的背景色,否则使用默认的绘制方式。

这样,每隔4行就会有一行使用自定义的绘制方式,以区分出不同的行。

对于这个问题,腾讯云并没有直接相关的产品或链接地址。但是,腾讯云提供了一系列云计算相关的产品和服务,如云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品来支持开发工作。

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

相关·内容

  • 在DataGridView控件中实现冻结列分界线

    我们在使用Office Excel的时候,有很多时候需要冻结行或者列。这时,Excel会在冻结的行列和非冻结的区域之间绘制上一条明显的黑线。...如下图: (图1) WinForm下的DataGridView控件也能实现类似的冻结行或者列的功能(参见:http://msdn.microsoft.com/zh-cn/library/28e9w2e1...(VS.85).aspx) ,但是呢,DataGridView控件默认不会在冻结列或者行的分界处绘制一个明显的分界线,这样的话,最终用户很难注意到当前有列或者行是冻结的。...2.如何保证分界线不会绘制到ScrollBar上 研究了一下,我们可以借用DataGridView提供的CellPainting方法。...在DataGridView绘制每一个Cell的时候判断当前Cell是否是分界线所在的位置,然后进行绘制。

    2.8K100

    C#二十八 数据绑定

    复杂绑定指将一个控件绑定到多个数据元素的能力,通常绑定到数据库的多条记录,如DataGridView就可以绑定到一个DataTable,一次显示多条记录和多个字段的值。...DataGridView控件每一行都是一个DataGridViewRow对象,每一行中按照列划分为很多单元格,每一个单元格就是一个DataGridViewCell对象。...除了行和列外,DataGridView控件还有列标题和行标题,列标题和行标题没有对应的类,但DataGridView控件中有很多属性可以设置这两个组成部分的外观。...你可以像获取数据表数据那样获取DataGridView控件中任意一个单元格的数据,因为DataGridView控件中表示行的集合也是Rows,在每一行对象(DataGridViewRow对象)中又有一个...算起来我们总共可以从五个方面设置DataGridView的外观,分别是行外观、列外观、行标题外观、列标题外观和总外观。

    1.5K10

    WinForm程序虚拟分页(实时加载数据)

    提供自己的数据管理操作             dataGridView1.VirtualMode = true;                         this.dataGridView1....dataGridView1_CellValueNeeded);             base.OnLoad(e);         }         void dataGridView1_CellValueNeeded...lowestIndexValue;                 }             }             ///              /// 获取当前页的结束行的...(rowIndex / RowsPerPage) * RowsPerPage;             }             ///              /// 获取结束行的...return true;                 }             return false;         }         ///          /// 绘制表格前获取数据的方法

    1.1K20

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

    假设不这样做的话,DataGridView会依据已经设定的Format,NullValue,DataSourceNullValue,FormatProvider属性会将Value属性会被又一次格式化一遍...列的操作 *******DataGridView 不显示最以下的新行: 通常 DataGridView 的最以下一行是用户新追加的行(行头显示 * )。...为 DataGridView 追加新行。...********DataGridView 推断新增行: DataGridView的AllowUserToAddRows属性为True时也就是同意用户追加新行的场合下,DataGridView的最后一行就是新追加的行...使用 DataGridViewRow.IsNewRow 属性能够推断哪一行是新追加的行。另外,通过DataGridView.NewRowIndex 能够获取新行的行序列号。

    5.4K10

    C#代码示例:在WinForm中创建并绑定一个DataTable

    3、将此列column添加到datatable 4、创建一个包含输入控件所有值的行。 5、将datatable绑定到Datagrid。 在做这个之前,我们需要先添加一个命名空间。...dt.Columns.Add(dc2); dt.Columns.Add(dc3); dt.Columns.Add(dc4); dt.Columns.Add(dc5); Step 4: 创建一个行对象...Convert.ToInt32(txt_quantity.Text),cmb_type.SelectedItem.ToString()); Step 5: 数据绑定datatable 到 datagrid: dataGridView1...在输入第一次预订的详细信息后,当我进行第二次预订时,第一次预订的详细信息将会丢失,因此为了防止这种情况发生,您必须稍微修改一下代码。在这里,我已经解释了如何做到这一点。...在将行绑定到datagrid时,输入一个条件。首先,检查该数据表中是否有数据。如果没有数据,则绑定datagrid中的列标头,否则只绑定没有datacolumn标头的行。

    4.7K40

    程序员你知道吗?C# 也可以连接和操作Access数据库

    最近啊,小编一次偶然的机会,迫使不得不去使用Access数据库进行开发。当然,数据库操作其实一通百通,也没算费多少力气。这里写一下总结一下,希望可以帮助对C#操作Access数据库,有需求的朋友。...连接AccessDemo 数据库创建成功,下面以Winform为例做链接Access数据库操作: 创建Winform项目,并添加DataGridView控件用以显示数据 ?...ExecuteNonQuery方法封装:(主要用户增删改) ExecuteScalar方法封装:(用户查询第一行第一列) ? ExecuteDataReader方法封装(读取数据): ? ?...读取Access并显示到界面: 为了方便对数据库数据的操作,利用面向对象的思想,创建数据库对应Model类: 执行ExecuteDataReader方法,获取所有数据显示到DataGridView: ?...Winform项目打开,添加DataGridView。为DatagridView添加指定数据源。 选择数据库,点击下一步: ? ? 选择数据集: 新建连接: ?

    4.7K20

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

    49 由于快期末考了,需要提交一份C#开发的管理系统,这里选择可视化开发,管理系统无非就是增、删、查、改,可以使用接口完成查询、删除等等…这里直接用自带的封装方法进行增删查改,本文做一个记录,也作为一次开发经历...//本地 int index = this.dataGridView1.Rows.Add(); this.dataGridView1.Rows[index].Cells[0].Value = "NULL...,即下方的代码 完整代码: //添加用户 //修改本地 和数据库 //本地 int index = this.dataGridView1.Rows.Add(); this.dataGridView1....(dataGridView.SelectedRows[0]); //删除一行 //插入数据库同步 //配置数据库 string...答:通过表单传值记录id在新的一个窗口查询一次数据,更新则是用了update 如果做到删除?

    97030

    从数字滚动动画看自定义View的绘制思路

    去绘制出来,在绘制的Y坐标不断增加偏移量,去改变绘制的高度,通过handler.postDelayed(this, 20);不断增加偏移量,并且不断判断所有位数字最后一行绘制完毕的时候,结束handler...如果是则讲自动循环刷新的方法取消掉,并且通知view进行最后一次定位绘制。 以上就是进入i循环先对是否绘制结束的判断。 如果没有结束那么继续绘制。...overLine[j]中的值的意思为:0表示还没绘制到最后一行,1表示为绘制到最后一行没有进行最后的定位绘制,2表示已经进行了定位绘制。...就是字符的宽度并且随着循环去变化: 0 + f0 * j Y坐标就是当前行的基准值+上当前偏移量: i * baseline + pianyiliangSum[j] 我们还需要几个辅助的方法: 1.每隔...但是可能有些方法你必须在super.onDraw(canvas),以后才可以获取的比如getPaint();那么我们就可以加个布尔值firstIn来控制只有第一次进入onDraw方法才去执行,或者其它的只做一次的事情都可以这样去控制

    2.8K30

    绘图-类似百度外卖波浪效果的实现与关键点解析

    CADisplayLink 默认每秒运行60次,将它的frameInterval属性设置为2,意味CADisplayLink每隔一帧运行一次,变为每秒运行30次, 使用场合相对专一,适合做UI的不停重绘...CAShapeLayer使用了硬件加速,绘制同一图形会比用Core Graphics快很多。 高效使用内存。...一个CAShapeLayer可以在边界之外绘制。你的图层路径不会像在使用Core Graphics的普通CALayer一样被剪裁掉。 不会出现像素化。...设置两个图层的大小相同,高度都是一个浪的高度 在定时器的绑定方法中 使用 正弦曲线函数和for 方法绘制路径 把绘制好的路径分别赋给两个图层。 设定好“船”的 y坐标。...舟行碧波上.gif

    73130

    OMP算法代码学习

    正交匹配追踪(OMP)算法的MATLAB函数代码并给出单次测试例程代码 测量数M与重构成功概率关系曲线绘制例程代码 信号稀疏度K与重构成功概率关系曲线绘制例程代码 参考来源:http://blog.csdn.net...100;%计算恢复概率 end Percentage(kk,1:length(M_set))=PercentageK; end toc save MtoPercentage1000%运行一次不容易...,第19行M_set = K:5:N;没必要全部遍历,所以每隔5个对该点的值进行测试,但为什么要从K开始呢?...第44行代码开始是绘图,根据稀疏度先得到测量次数的集合,然后以测量次数M为横轴,重构概率为纵轴绘制图形。 本程序运行结果: ?   文献中的Fig.1: ?...5、信号稀疏度K与重构成功概率关系曲线绘制例程代码 代码与4中的类似 %压缩感知重构算法测试CS_Reconstuction_KtoPercentage.m % 绘制参考文献中的Fig.2 %

    2.3K71
    领券