Пример #1
0
 private void PictureBox_Mouse_Down(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         if (isMoving)
         {
             //đang di chuyển hình
         }
         else
         {
             if (hinhHienTai == null || hinhHienTai.KiemTraViTri(e.Location) == -1)
             {
                 hinhHienTai = LayHinhVeHienTai(IDhinhHienTai);
             }
             if (hinhHienTai != null)
             {
                 hinhHienTai.Mouse_Down(e);                            //gọi sự kiện mouse_down của hình
                 pictureBox.Refresh();                                 //làm mới
                 hinhHienTai.VeKhung(pictureBox.CreateGraphics());     //vẽ 8 hình chữ nhật nhỏ (chấm vuông nhỏ) làm khung xung quanh
                 lHV.listHinh.Insert(lHV.listHinh.Count, hinhHienTai); //thêm hình mới vào list
             }
         }
     }
     else
     {
         hinhHienTai = null;
     }
 }
Пример #2
0
        private void PictureBox_Mouse_Move(object sender, MouseEventArgs e)
        {
            lblPosition.Text = "Vị trí chuột: (" + e.Location.X.ToString() + ", " + e.Location.Y.ToString() + ")";

            if (IDhinhHienTai == -1)  //nút "Vị trí và kích cỡ" đã được bấm
            {
                if (isMoving == false)
                {
                    for (int i = lHV.listHinh.ToArray().Length - 1; i >= 0; i--)        //kiểm tra từng hình xem hình nào bị...
                    {
                        int vt = (lHV.listHinh.ToArray())[i].KiemTraViTri(e.Location);
                        if (vt == 0)        //...chuột di chuyển trên bề mặt
                        {
                            hinhHienTai = (lHV.listHinh.ToArray())[i];
                            if (e.Button == MouseButtons.Left)      //=> sẽ di chuyển hình này
                            {
                                Cursor = Cursors.Hand;
                                hinhHienTai.diChuyen         = true;    //cho phép di chuyển
                                hinhHienTai.thayDoiKichThuoc = false;   //không cho phép thay đổi kích thước
                                isMoving = true;                        //bật cờ đang di chuyển



                                BtnxCircle_Click(btnxConTro, e);                  //mượn nút "Chuột" để di chuyển (bản thân nút "Vị trí và kích cỡ" sẽ không di chuyển hình
                                pictureBox.Refresh();
                                hinhHienTai.VeKhung(pictureBox.CreateGraphics()); //vẽ khung
                                lHV.listHinh.RemoveAt(i);                         //sau khi di chuyển sẽ phát sinh hình mới tại vị trí mới=>xóa hình cũ
                            }
                            else // chuột đi qua mà không bấm
                            {
                                isMoving             = false;
                                hinhHienTai.diChuyen = false;
                            }


                            Cursor = Cursors.Hand;
                            pictureBox.Refresh();
                            hinhHienTai.VeKhung(pictureBox.CreateGraphics());
                            break;
                        }
                        else if (vt > 0) //chuột chỉ đúng điểm điều khiển (1 trong 8 chấm vuông nhỏ làm khung)   => sẽ thay đổi kích thước hình này
                        {
                            hinhHienTai = (lHV.listHinh.ToArray())[i];
                            if (e.Button == MouseButtons.Left)
                            {
                                hinhHienTai.thayDoiKichThuoc = true;        //cho phép thay đổi kích thước
                                hinhHienTai.diChuyen         = false;       //không cho phép di chuyển
                                isMoving = true;


                                BtnxCircle_Click(btnxConTro, e);


                                pictureBox.Refresh();
                                hinhHienTai.VeHCNDiemDieuKhien(pictureBox.CreateGraphics(), 5);
                                lHV.listHinh.RemoveAt(i);
                            }
                            else
                            {
                                isMoving = false;
                                hinhHienTai.thayDoiKichThuoc = false;
                            }



                            Cursor = Cursors.Cross;
                            pictureBox.Refresh();
                            hinhHienTai.VeHCNDiemDieuKhien(pictureBox.CreateGraphics(), 5);
                            break;
                        }

                        else //tìm trong danh sách không có hình nào bị chuột đi qua
                        {
                            Cursor = Cursors.Default;
                        }
                    }
                }
            }
            else  //không phải nút "Vị trí và kích cỡ" => là nút vẽ hình hoặc nút "Chuột"
            {
                if (hinhHienTai != null)
                {
                    if (hinhHienTai.KiemTraViTri(e.Location) > 0)   //nếu chuột chỉ đúng 1 trong 8 chấm vuông nhỏ => đổi chuột thành hình dấu +
                    {
                        Cursor = Cursors.Cross;
                    }

                    else if (hinhHienTai.KiemTraViTri(e.Location) == 0)     //tương tự với lúc chuột nằm trong hình => chuột hình bàn tay
                    {
                        Cursor = Cursors.Hand;
                    }
                    else
                    {
                        Cursor = Cursors.Default;       //còn lại thì mặc định
                    }
                }

                if (e.Button == MouseButtons.Left)
                {
                    if (hinhHienTai != null)
                    {
                        hinhHienTai.Mouse_Move(e);
                        pictureBox.Refresh();
                        hinhHienTai.VeKhung(pictureBox.CreateGraphics());
                    }
                }
            }
        }