在datagridview中画一根线,线的终点超出datagridview显示范围,点击滚动条,线条无法保持原样(附代码)
如何使得线条保持原样?
还请各位帮忙看看,谢谢了。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 20; i++)
{
dataGridView1.Columns.Add(i.ToString(),"clo"+i.ToString());
}
dataGridView1.Rows.Add(50);
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = "PD" + i.ToString();
}
}
private void dataGridView1_Paint(object sender, PaintEventArgs e)
{
Pen p = new Pen(Color.Black, 2);
int startX;
int startY;
int endX;
int endY;
startX = dataGridView1.Rows[1].HeaderCell.Size.Width;
startY = dataGridView1.Columns[1].HeaderCell.Size.Height;
endX = dataGridView1.Size.Width;
endY = dataGridView1.Size.Height;
Point start = new Point(startX, startY);
Point end = new Point(endX, endY);
e.Graphics.DrawLine(p, start, end);
}
}
}
相关推荐
DataGridView固定滚动条
扩展一个DataGridViewExt类,实现重新绑定数据实现刷新DataGridView内容时滚动条不跳到DataGridView顶端的效果
C# WinForms DataGridView线条自绘:分组分隔线控件实现
DataGridView 是 WinForms 中应用最广泛的数据表格控件,但其默认的网格线仅支持全局统一样式,无法满足在指定行绘制独立分隔线的需求。通过理解 OnPaint 事件与 GDI+ 绘制的底层机制,开发者可以在 DataGridView 完成基础渲染后再自绘线条,从而获得完全可控的线宽、颜色和跨列连续绘制能力。这种自定义绘制方法不仅适用于分组数据可视化,也常用于设备日志边界标记、当前行指示器等工业上位机场景。本文围绕一个名为 DataGridViewLineGrid 的封装控件,解析自绘坐标计算
datagridview 自定义滚动条
在codeproject中的,自己有点用出,收藏着看看 在codeproject中的,自己有点用出,收藏着看看
两种方法实现datagridview图像点击时显示在picturebox
c#实现datagridview绑定到数据库的图像点击时显示在picturebox中两种办法
DataGridView索引超出范围解决方案[源码]
在WinForm中使用DataGridView控件时,通过代码`int index = this.dataGridView1.SelectedRows[0].Index;`获取选中行序号时,可能会遇到`System.ArgumentOutOfRangeException`异常,提示索引超出范围。该问题通常是由于未正确选中整行导致。解决方法是在属性面板中找到`SelectionMode`属性,将其设置为`FullRowSelect`,从而确保能够选中一整行并正确获取行号。这一调整有效解决了因索引无效而导致的异常问题。


