我有一个这种格式的数据表
ID X-coordinate Y-coordinate
我想创建一个网格,该网格在节点处具有 ID,并且具有根据其 X、Y 位置连接到相邻 ID 的线。关于这样做的任何建议,我以前从未做过任何绘图。谢谢
在表单上放置一个面板:
private DataTable dt;
public Form1() {
InitializeComponent();
dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("XCord", typeof(int));
dt.Columns.Add("YCord", typeof(int));
DataRow dr1 = dt.NewRow();
dr1["ID"] = 1;
dr1["XCord"] = 10;
dr1["YCord"] = 10;
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["ID"] = 2;
dr2["XCord"] = 10;
dr2["YCord"] = 50;
dt.Rows.Add(dr2);
DataRow dr3 = dt.NewRow();
dr3["ID"] = 3;
dr3["XCord"] = 25;
dr3["YCord"] = 50;
dt.Rows.Add(dr3);
panel1.Paint += panel1_Paint;
}
下面是绘制方法:
private void panel1_Paint(object sender, PaintEventArgs e) {
e.Graphics.Clear(Color.White);
for (int i = 1; i < dt.Rows.Count; i++) {
e.Graphics.DrawLine(Pens.Red,
new Point(Convert.ToInt32(dt.Rows[i - 1]["XCord"]), Convert.ToInt32(dt.Rows[i - 1]["YCord"])),
new Point(Convert.ToInt32(dt.Rows[i]["XCord"]), Convert.ToInt32(dt.Rows[i]["YCord"])));
}
}
结果: