C# Winform DataGridview 实现行号倒序

时间:2024-04-14 18:29:25

C# Winform DataGridview 实现行号倒序

设计简单测试界面如上

选择Datagirdview 的Paint事件

C# Winform DataGridview 实现行号倒序

    private void dttest_Paint(object sender, PaintEventArgs e)     

    {            

         int rowcount = dttest.RowCount;   

         int showcount = dttest.DisplayedRowCount(true);    

         if (showcount == 0) return;        

        System.Drawing.Rectangle currrct;          

       int startNo = dttest.FirstDisplayedCell.RowIndex;  

       int ColNo = dttest.FirstDisplayedCell.ColumnIndex;    

       string stext = "";    

        int nowy = 0;         

       int hDelta = 0;      

       for (int i = startNo; i < startNo + showcount; i++)

     {

            currrct = (System.Drawing.Rectangle)dttest.GetCellDisplayRectangle(ColNo, i, true);   

             nowy = currrct.Y + 2;      

            stext = string.Format("{0, 3}", rowcount - i);       

             if (hDelta == 0)            

             hDelta = (currrct.Height - dttest.Font.Height) / 2;   

              if (dttest.Rows[i].Selected == true)            

         e.Graphics.DrawString(stext, dttest.Font, new System.Drawing.SolidBrush(System.Drawing.Color.White), 10, nowy + hDelta);         

        else       

              e.Graphics.DrawString(stext, dttest.Font, new System.Drawing.SolidBrush(System.Drawing.Color.Black), 10, nowy + hDelta);

            }      

   }

Result:

C# Winform DataGridview 实现行号倒序