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

每隔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.3K100

    DataGridView使用小结

    {             if (e.Button == MouseButtons.Right)             {                 //过滤有可能右键点击的标题和空白列头...}                     //只选中一时设置活动单元格                     if (dataGridView1.SelectedRows.Count == 1)...["Pic"]).Value = image2;         }     } } 5).当网格未填充满控件时,画线来填充空白区域 ///  /// 绘制网格填充空白区域 /// <....RowHeadersWidth = 12;//标题宽度固定12 dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing...;//不能用鼠标调整列标头宽度 dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.LemonChiffon;//奇数背景色

    2.2K20

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

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

    96620

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

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

    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标头的

    3.4K40

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

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

    4K20

    期末作业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 如果做到删除?

    26530

    从数字滚动动画看自定义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.7K30

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

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

    66830

    OMP算法代码学习

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

    2.1K71
    领券