using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;
// IUIElementDrawFilter インタフェースをクラスに実装します
// (この場合はフォームです)。
public class Form1 : System.Windows.Forms.Form, Infragistics.Win.IUIElementDrawFilter
{
Pen penBorder = new Pen(Color.DarkGoldenrod);
private void Form1_Load(object sender, System.EventArgs e)
{
// グリッドの DrawFilter プロパティを、UIElementDrawFilter インタフェースを
// 実装するオブジェクトに設定します。
this.ultraGrid1.DrawFilter = this;
}
public Infragistics.Win.DrawPhase GetPhasesToFilter(ref Infragistics.Win.UIElementDrawParams drawParams)
{
// 描画しようとしているエレメントが RowCellAreaUIElement である場合は、
// その境界線のみを描画します。
if (drawParams.Element is RowCellAreaUIElement)
return Infragistics.Win.DrawPhase.BeforeDrawBorders;
else
return Infragistics.Win.DrawPhase.None;
}
public bool DrawElement(Infragistics.Win.DrawPhase drawPhase, ref Infragistics.Win.UIElementDrawParams drawParams)
{
// この関数は、GetPhasesToFilter から返されたフラグに基づいて、
// RowCellAreaUIElement の BeforeDrawBorders フェーズに対してのみ呼び出されます。
// エレメントの上辺に沿って境界線を描画します。
Rectangle elementRect = drawParams.Element.Rect;
drawParams.Graphics.DrawLine( this.borderPen, elementRect.Location, new Point(elementRect.Right, elementRect.Top));
// エレメントの境界線が通常どおり描画されないようにするため、True を返します。
return true;
}
}