Exemplo n.º 1
0
        private void picMain_MouseMove(object sender, MouseEventArgs e)
        {
            {
                //if (LoaiHinhHienTai == -1)
                //    label3.Text = "SizeMove";  //nút hiện tại là SizeMove
                //if (IDhinhHienTai == 0)
                //    label3.Text = "ConTro";     ////nút hiện tại là ConTro
                lblToaDoChuot.Caption = e.Location.X.ToString() + ", " + e.Location.Y.ToString();

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

                                    //label1.Text = "MouseDown trong " + i + ", isMoVing: " + isMoving.ToString(); ;
                                    //label4.Text = "Đang di chuyển";
                                    //label5.Text = "Được đổi kích thước: " + hinhHienTai.thayDoiKichThuoc.ToString();

                                    btnHand.Enabled = false;        //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
                                    Enabled_True_LoaiHinhCuoi(-1);

                                    picMain.Refresh();
                                    HinhHienTai.VeKhung(picMain.CreateGraphics());        //vẽ khung
                                    DSHinh.danhSachHinh.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
                                {
                                    IsDiChuyen             = false;
                                    HinhHienTai.IsDiChuyen = false;
                                    //label4.Text = "Được di chuyển: " + hinhHienTai.diChuyen.ToString();
                                    //label5.Text = "Được đổi kích thước: " + hinhHienTai.thayDoiKichThuoc.ToString();
                                }

                                //label6.Text = "MouseMove trong "+i;

                                Cursor = Cursors.Hand;
                                picMain.Refresh();
                                HinhHienTai.VeKhung(picMain.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 = (DSHinh.danhSachHinh.ToArray())[i];
                                if (e.Button == MouseButtons.Left)
                                {
                                    HinhHienTai.IsThayDoiKichThuoc = true;        //cho phép thay đổi kích thước
                                    HinhHienTai.IsDiChuyen         = false;       //không cho phép di chuyển
                                    IsDiChuyen = true;

                                    //label1.Text = "MouseDown trên ĐK " + vt + " của " + i + ", isMoving: " + isMoving.ToString();
                                    //label4.Text = "Được di chuyển: " + hinhHienTai.diChuyen.ToString();
                                    //label5.Text = "Đang thay đổi kích thước";

                                    btnHand.Enabled = false;
                                    Enabled_True_LoaiHinhCuoi(-1);

                                    //label1.Text = hinhHienTai.khuVuc.ToString();

                                    picMain.Refresh();
                                    HinhHienTai.VeHCNDiemDieuKhien(picMain.CreateGraphics(), 5);
                                    DSHinh.danhSachHinh.RemoveAt(i);
                                }
                                else
                                {
                                    IsDiChuyen = false;
                                    HinhHienTai.IsThayDoiKichThuoc = false;

                                    //label4.Text = "Di chuyển: " + hinhHienTai.diChuyen.ToString();
                                    //label5.Text = "Được đổi kích thước: " + hinhHienTai.thayDoiKichThuoc.ToString();
                                }

                                //label6.Text = "MouseMove trên điểm Đk " + vt + " của " + i + ", isMoving: " + isMoving.ToString(); ;

                                Cursor = Cursors.Cross;
                                picMain.Refresh();
                                HinhHienTai.VeHCNDiemDieuKhien(picMain.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;
                                // label6.Text = "MouseMove ngoài";
                            }
                        }
                    }
                }
                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 (LoaiHinhHienTai == 5)
                    {
                        HinhHienTai = LayHinhHienTai(LoaiHinhHienTai);
                        if (HinhHienTai != null)
                        {
                            //làm nổi hình mới nhất lên (hiện khung hình đó)
                            // label1.Text = "MouseDown ngoài";
                            HinhHienTai.Mouse_Move(e);
                            picMain.Refresh();
                            HinhHienTai.VeKhung(picMain.CreateGraphics());
                        }
                    }
                    if (e.Button == MouseButtons.Left)
                    {
                        if (HinhHienTai != null)
                        {
                            //làm nổi hình mới nhất lên (hiện khung hình đó)
                            // label1.Text = "MouseDown ngoài";
                            HinhHienTai.Mouse_Move(e);
                            picMain.Refresh();
                            HinhHienTai.VeKhung(picMain.CreateGraphics());
                        }
                    }
                }
            }
        }