次の C# コードを使用して、ユーザー コントロールに 7 x 5 のグリッドを描画しようとしています。
Pen p = _createPen( Brushes.Red );
int slotWidth = this.Width / 7;
int slotHeight = this.Height / 5;
// columns = days
for ( int c = 1; c < 7; c++ )
{
// rows = weeks
for ( int r = 1; r < 5; r++ )
{
g.FillRectangle( Brushes.LightGray, new Rectangle( 1, ( ( r - 1 ) * slotHeight ) + 1, this.Width - 2, 10 ) );
g.DrawLine( p, new Point( 0, r * slotHeight ), new Point( this.Width, r * slotHeight ) );
}
g.DrawLine( p, new Point( c * slotWidth, 1 ), new Point( c * slotWidth, this.Height - 2 ) );
}
}
私が抱えている問題は、最後の列の線が塗りつぶされた四角形の上に描画されていることですが、他の列はそうではありません。FillRectangle()
が最初に実行されるため、後続のDrawLine()
メソッドが長方形を描画する必要がある理由はわかりませんが、そうではありません。
ユーザー コントロールのPaint()
イベントにコードが追加されました。