コード例 #1
0
ファイル: Form1.cs プロジェクト: htybay/tools
        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);
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: htybay/tools
 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();
     }
 }
コード例 #3
0
ファイル: Form1.cs プロジェクト: Lamael/tools
        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();
            }

        }
コード例 #4
0
ファイル: Form1.cs プロジェクト: htybay/tools
        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);
        }