|
まぁ、ざっくり検証なので冗長なコードかもしれません。 ダッチさん同様、OnPaintで処理を記述。 ClientSize、ClientRectangleでも(見た目は)同じような動き。 で、このままだとFormサイズ変更時に意図通りの動作(サイズに合わせて拡大縮小)にならないので OnResizeで、Client領域を無効化して再描画処理を実行させてみました。 こんなで、如何でしょうか。 ---ここから-------------------------------------------------------------- public Form1() { InitializeComponent(); this.Width = 600; this.Height = 600; }
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Size client = this.ClientSize; Int32 width = client.Width / 8; Int32 height = client.Height / 8; // ClientRectangleを使用する場合 //Rectangle client = this.ClientRectangle; //Int32 width = client.Width / 8; //Int32 height = client.Height / 8; // 縦線の描画処理 for (Int32 x = 0; x< 8; x++) { Point ax = new Point(x * width, 0); Point bx = new Point(x * width, client.Height); e.Graphics.DrawLine(new Pen(Brushes.Black), ax, bx); } // 横線の描画処理 for (Int32 y = 0; y < 8; y++) { Point ay = new Point(0, y * height); Point by = new Point(client.Width, y * height); e.Graphics.DrawLine(new Pen(Brushes.Black), ay, by); } }
protected override void OnResize(EventArgs e) { base.OnResize(e); this.Invalidate(); } ---ここまで--------------------------------------------------------------
|