zoukankan      html  css  js  c++  java
  • DataGridView显示行号

    可以做成扩展控件,这里是主要代码:

    方法一:

    复制代码
    private void dataGridView2_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
            {
                
    using (var brush = new
     SolidBrush(dataGridView2.RowHeadersDefaultCellStyle.ForeColor))
                {
                    e.Graphics.DrawString((e.RowIndex 
    + 1).ToString(), dataGridView2.DefaultCellStyle.Font, brush, e.RowBounds.Location.X + 12, e.RowBounds.Y + 5
    );
                }
            }
    复制代码

    方法二:

    复制代码
    private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
            {
                
    if (e.ColumnIndex == -1 && e.RowIndex >= 0 && e.RowIndex <
     dataGridView1.Rows.Count)
                {
                    
    //dataGridView1.Rows[e.RowIndex].HeaderCell.Value = (e.RowIndex).ToString();

                    e.PaintBackground(e.ClipBounds, true);
                    e.Graphics.DrawString((e.RowIndex 
    + 1).ToString(), Font, Brushes.Black, e.CellBounds.Left + 6
    ,
                                          e.CellBounds.Top 
    + 5
    );
                    e.Handled 
    = true
    ;
                }
            }
    复制代码

    方法三:继承DataGridView扩展为自定义控件

    复制代码
    public partial class DataGridViewEx : DataGridView
        {
            
    bool showRowHeaderNumbers;

            
    /// <summary>
            
    /// 是否显示行号
            
    /// </summary>
            [Category("扩展属性"), Description("是否显示行号"), DefaultValue(false)]
            
    public bool ShowRowHeaderNumbers
            {
                
    get { return showRowHeaderNumbers; }
                
    set
                {
                    
    if (showRowHeaderNumbers != value)
                        Invalidate();
                    showRowHeaderNumbers 
    = value;
                }
                
    //get;
                
    //set;
            }

            
    public DataGridViewEx()
            {
                InitializeComponent();
            }

            
    protected override void OnRowPostPaint(DataGridViewRowPostPaintEventArgs e)
            {
                
    if (ShowRowHeaderNumbers)
                {
                    
    string title = (e.RowIndex + 1).ToString();
                    Brush brush 
    = Brushes.Black;
                    e.Graphics.DrawString(title, DefaultCellStyle.Font, brush, e.RowBounds.Location.X 
    + RowHeadersWidth / 2 - 4, e.RowBounds.Location.Y + 4);
                }

                
    base.OnRowPostPaint(e);
            }
        }
  • 相关阅读:
    React项目升级遇到的问题复盘(2019-09-02)
    前端项目升级到React-router5中遇到的问题解决方案以及思路
    三行Jquery代码实现简单的选项卡
    开放-封闭原则
    单一职责原则
    简单工厂模式(c++实现)
    博客园使用MarkDown格式记录博客
    Qml 的Image对应的source不变,但是图片内容改变却不会刷新的解决方案
    Qt中第一请求web api连接返回缓慢问题
    Qt的pro文件工程配置
  • 原文地址:https://www.cnblogs.com/ewyb/p/2590006.html
Copyright © 2011-2022 走看看