关键字:WinForm DataGrid 显示行号

    近日在网上搜到一些如何在WinForm的DataGrid上显示行号的资料,因此自己也写了一段代码,因为是在前人实践的基础上做了些修改,所以不敢独享。如下:

可以显示行号的DataGrid(WinForm)/// 可以显示行号的DataGrid
可以显示行号的DataGrid(WinForm)
/// </summary>
可以显示行号的DataGrid(WinForm)public class HDataGrid : System.Windows.Forms.DataGrid
{
可以显示行号的DataGrid(WinForm)    
public HDataGrid():base()

可以显示行号的DataGrid(WinForm)
可以显示行号的DataGrid(WinForm)    
private bool _DisplayRowNumber = false;

可以显示行号的DataGrid(WinForm)    
/// 控制是否显示行号
可以显示行号的DataGrid(WinForm)    
/// </summary>
可以显示行号的DataGrid(WinForm)    [Browsable(true),DefaultValue(false),Description("是否显示行号")]
可以显示行号的DataGrid(WinForm)    
public bool DisplayRowNumber
{


可以显示行号的DataGrid(WinForm)            _DisplayRowNumber 
= value; 
可以显示行号的DataGrid(WinForm)            
this.Invalidate();
可以显示行号的DataGrid(WinForm)            
可以显示行号的DataGrid(WinForm)        }

可以显示行号的DataGrid(WinForm)    }

可以显示行号的DataGrid(WinForm)
可以显示行号的DataGrid(WinForm)

可以显示行号的DataGrid(WinForm)    
/// 重载OnPaint方法显示行号
可以显示行号的DataGrid(WinForm)    
/// </summary>
可以显示行号的DataGrid(WinForm)    
/// <param name="e"></param>
可以显示行号的DataGrid(WinForm)    protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
可以显示行号的DataGrid(WinForm)        
base.OnPaint (e);
可以显示行号的DataGrid(WinForm)
可以显示行号的DataGrid(WinForm)        
//显示行号
可以显示行号的DataGrid(WinForm)
        if (DisplayRowNumber && this.RowHeadersVisible && this.VisibleColumnCount > 0)
{
可以显示行号的DataGrid(WinForm)            
if (this.DataSource == nullreturn;
可以显示行号的DataGrid(WinForm)            
可以显示行号的DataGrid(WinForm)            
int iRowNumStart = this.VertScrollBar.Value;
可以显示行号的DataGrid(WinForm)            
int yPos = 0;
可以显示行号的DataGrid(WinForm)            
int iRowNumEnd = iRowNumStart + this.VisibleRowCount;
可以显示行号的DataGrid(WinForm)
可以显示行号的DataGrid(WinForm)            
while(iRowNumStart < iRowNumEnd)
{
可以显示行号的DataGrid(WinForm)                yPos 
= this.GetCellBounds(iRowNumStart++,0).Y + 2;
可以显示行号的DataGrid(WinForm)
可以显示行号的DataGrid(WinForm)                
string strRowNum = string.Format(" {0}",iRowNumStart);
可以显示行号的DataGrid(WinForm)
可以显示行号的DataGrid(WinForm)                e.Graphics.DrawString(strRowNum,
this.Font ,new System.Drawing.SolidBrush(System.Drawing.Color.Black), 6, yPos);
可以显示行号的DataGrid(WinForm)            }

可以显示行号的DataGrid(WinForm)        }

可以显示行号的DataGrid(WinForm)
可以显示行号的DataGrid(WinForm)        
可以显示行号的DataGrid(WinForm)    }

可以显示行号的DataGrid(WinForm)
可以显示行号的DataGrid(WinForm)}

相关文章: