我需要在包含4行和4列的窗体上绘制线网格。
答案 0 :(得分:1)
查看:How to: Draw a Line on a Windows Form
如果您想要控制布局而不是简单的线条网格,可以使用TableLayoutPanel。
在回复您的评论时,您可以使用TableLayoutPanel以及锚定和停靠来实现您想要的效果。还有FlowLayoutPanel,但要注意不要过度使用此控件,因为表单加载速度似乎受到影响。
答案 1 :(得分:-1)
我会覆盖OnPaint方法并添加一些代码来在后台绘制线条。然后,在我想完成绘图之后,我会调用base.OnPaint让表单继续绘制可能在表单上的任何其他控件。这样,线条在背景中,不会在任何其他控件上绘制。另外,请确保添加一个graphics.clear()调用以避免屏幕撕裂效果。
也许您可以尝试使用此代码的变体:
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
Pen linePen = new Pen(System.Drawing.Color.CornflowerBlue);
Graphics grphx = this.CreateGraphics();
grphx.Clear(this.BackColor);
for(int i=1; i<5; i++)
{
//Draw verticle line
grphx.DrawLine(linePen,
(this.ClientSize.Width/4)*i,
0,
(this.ClientSize.Width / 4) * i,
this.ClientSize.Height);
//Draw horizontal line
grphx.DrawLine(linePen,
0,
(this.ClientSize.Height / 4) * i,
this.ClientSize.Width,
(this.ClientSize.Height / 4) * i);
}
linePen.Dispose();
//Continues the paint of other elements and controls
base.OnPaint(e);
}
}
}