在继承DataGridTextBoxColumn后重写Paint时protected override void Paint(System.Drawing.Graphics g, System.Drawing.Rectangle bounds, System.Windows.Forms.CurrencyManager source, int rowNum, System.Drawing.Brush backBrush, System.Drawing.Brush foreBrush, bool alignToRight)
{
try
{
//。

}
catch{}
finally
{
base.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight);
}现在的问题是:
1.如何在Paint中获取当前列的列值?(即当前是哪一列?)
2.如何在Paint中获取其他列中的数值?(因为要根据其他列中的数值来设置当前列的背景色)
3.可否在Paint中获取DataGrid类型的对象?

解决方案 »

  1.   

    dataGrid1.FirstVisibleColumn可以获取当前列。
    dataGrid1.GetCellBounds(myrow, mycol)可以得到你想到的任何一个Cell的Rectangle
      

  2.   

    在Paint中那里有dataGrid1?我的第3问就是想得到类似的东东
      

  3.   

    哪你干吗要去Override(Paint)方法呢。直接用DataGrid的Paint方法不就行了吗?所有的队象都可以在paint外面得到。在Paint中处理你要处理的事务。在外部使用this.dataGrid1.Ivalidata()方法不是更好吗?
      

  4.   

    看来你还是不行啊我开始用的就是DataGrid的Paint方法,不能解决问题才改用这个的哎,2003 的DATAGRID,真TNND
      

  5.   

    自己搞定了DataGrid dataGrid=this.DataGridTableStyle.DataGrid;
    DataGrid.HitTestInfo hitInfo = dataGrid.HitTest(new Point(bounds.X,bounds.Y));int row=hitInfo.Row;
    int col=hitInfo.Column;