private void dataGridView1_CurrentCellChanged(object sender, EventArgs e) { if (dataGridView1.CurrentCell == null) { return; } if (pictureBox1.Image != null) { if (BeforeDot2 == null || ImageChanged) { BeforeDot2 = UtilsIO.DeepClone(pictureBox1.Image); ImageChanged = false; } else { pictureBox1.Image.Dispose(); pictureBox1.Image = (Image)BeforeDot2.Clone(); pictureBox1.Update(); } } dynamic val; if (tabControl1.SelectedIndex == 0) { val = (Region)listBox1.SelectedItem; } else { val = (Transport)listBox1.SelectedItem; } Point p = ((List <Point>)val.Points)[dataGridView1.CurrentCell.RowIndex]; if (pictureBox1.Image == null) { return; } using (Graphics g = Graphics.FromImage(pictureBox1.Image)) { g.FillEllipse(new SolidBrush(Color.Crimson), GetX(p.x) - 5, GetZ(p.z) - 5, 10, 10); } panel1.VerticalScroll.Value = 0; panel1.HorizontalScroll.Value = 0; if (Convert.ToInt32(GetZ(p.z) - 70) > panel1.VerticalScroll.Maximum || Convert.ToInt32(GetX(p.x) - 60) > panel1.HorizontalScroll.Maximum) { return; } panel1.VerticalScroll.Value = Convert.ToInt32(GetZ(p.z) - 70); panel1.HorizontalScroll.Value = Convert.ToInt32(GetX(p.x) - 60); }
private void button7_Click(object sender, EventArgs e) { try { var mm = new MemoryWork((Process)comboBox2.SelectedItem); var cfg = (Config)comboBox1.SelectedItem; var t = mm.ReadInt32(HexToInt(cfg.BaseAddr)) + HexToInt(cfg.Coord); var coords = mm.ReadInt32(t); var point = new Point { x = mm.ReadFloat(coords + Convert.ToInt32(cfg.X)), y = mm.ReadFloat(coords + Convert.ToInt32(cfg.Y)), z = mm.ReadFloat(coords + Convert.ToInt32(cfg.Z)) }; dynamic selected; if (tabControl1.SelectedIndex == 0) { selected = (Region)listBox1.SelectedItem; } else { selected = (Transport)listBox1.SelectedItem; } var points = ((List <Point>)selected.Points); points[dataGridView1.SelectedCells[0].RowIndex] = point; DataRepaint(); } catch (Exception ex) { dynamic reg; if (tabControl1.SelectedIndex == 0) { reg = (Region)listBox1.SelectedItem; } else { reg = (Transport)listBox1.SelectedItem; } reg.Points.Add(new Point()); DataRepaint(); } }
private void button7_Click(object sender, EventArgs e) { try { var mm = new MemoryWork((Process)comboBox2.SelectedItem); var cfg = (Config)comboBox1.SelectedItem; var t = mm.ReadInt32(HexToInt(cfg.BaseAddr)) + HexToInt(cfg.Coord); var coords = mm.ReadInt32(t); var point = new Point { x = mm.ReadFloat(coords + Convert.ToInt32(cfg.X)), y = mm.ReadFloat(coords + Convert.ToInt32(cfg.Y)), z = mm.ReadFloat(coords + Convert.ToInt32(cfg.Z)) }; dynamic selected; if (tabControl1.SelectedIndex == 0) selected = (Region)listBox1.SelectedItem; else selected = (Transport)listBox1.SelectedItem; var points = ((List<Point>)selected.Points); points[dataGridView1.SelectedCells[0].RowIndex] = point; DataRepaint(); } catch (Exception ex) { dynamic reg; if (tabControl1.SelectedIndex == 0) reg = (Region)listBox1.SelectedItem; else reg = (Transport)listBox1.SelectedItem; reg.Points.Add(new Point()); DataRepaint(); } }
private void DataRepaint() { dynamic reg; if (tabControl1.SelectedIndex == 0) { reg = (Region)listBox1.SelectedItem; } else { reg = (Transport)listBox1.SelectedItem; } dataGridView1.Rows.Clear(); Point last = null; var path = new GraphicsPath(); path.StartFigure(); if (pictureBox1.Image != null && reg.Points.Count >= 3) { if (reg is Region) { var ls = new List <PointF>(); for (int i = 0; i < reg.Points.Count; i++) { Point pp = reg.Points[i]; last = pp; ls.Add(new PointF(GetX(pp.x), GetZ(pp.z))); } path.AddPolygon(ls.ToArray()); } else { last = reg.Points[0]; path.AddLine(GetX(reg.Points[0].x), GetZ(reg.Points[0].z), GetX(reg.Points[2].x), GetZ(reg.Points[2].z)); } path.CloseFigure(); using (Graphics g = Graphics.FromImage(pictureBox1.Image)) { g.DrawPath(_pen, path); } BeforeDot2 = null; } for (int i = 0; i < reg.Points.Count; i++) { Point pp = reg.Points[i]; var row = new DataGridViewRow(); row.Cells.Add(new DataGridViewTextBoxCell() { Value = i }); row.Cells.Add(new DataGridViewTextBoxCell() { Value = pp.x }); row.Cells.Add(new DataGridViewTextBoxCell() { Value = pp.y }); row.Cells.Add(new DataGridViewTextBoxCell() { Value = pp.z }); dataGridView1.Rows.Add(row); } if (pictureBox1.Image == null || reg.Points.Count < 3) { return; } panel1.VerticalScroll.Value = 0; panel1.HorizontalScroll.Value = 0; if (Convert.ToInt32(GetZ(last.z) - 70) > panel1.VerticalScroll.Maximum || Convert.ToInt32(GetX(last.x) - 60) > panel1.HorizontalScroll.Maximum) { return; } panel1.VerticalScroll.Value = Convert.ToInt32(GetZ(last.z) - 70); panel1.HorizontalScroll.Value = Convert.ToInt32(GetX(last.x) - 60); }