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()); } } } } }
private void picMain_MouseDown(object sender, MouseEventArgs e) { IsDaLuu = false; //khi mouse_down =>có thay đổi=>đánh dấu là chưa lưu // label1.Text = "MouseDown trên"; if (e.Button == MouseButtons.Left) { // label2.Text = "MouseDown trên: "+IDhinhHienTai+" "+", isMoving: "+isMoving.ToString(); if (IsDiChuyen) { //đang di chuyển hình } else { if (HinhHienTai == null || HinhHienTai.KiemTraViTri(e.Location) == -1) { HinhHienTai = LayHinhHienTai(LoaiHinhHienTai); IsNewPolygon = false; } if (HinhHienTai != null) //&& hinhHienTai.loaiHinh!=0) { HinhHienTai.Mouse_Down(e); //gọi sự kiện mouse_down của hình picMain.Refresh(); //làm mới if (LoaiHinhHienTai != 5) { HinhHienTai.VeKhung(picMain.CreateGraphics()); //vẽ 8 hình chữ nhật nhỏ (chấm vuông nhỏ) làm khung xung quanh } DSHinh.danhSachHinh.Insert(DSHinh.danhSachHinh.Count, HinhHienTai); //thêm hình mới vào list } } } else if (e.Button == MouseButtons.Right && LoaiHinhHienTai == 5) { HinhHienTai.Mouse_Down(e); //gọi sự kiện mouse_down của hình picMain.Refresh(); //làm mới HinhHienTai.VeKhung(picMain.CreateGraphics()); //vẽ 8 hình chữ nhật nhỏ (chấm vuông nhỏ) làm khung xung quanh DSHinh.danhSachHinh.Insert(DSHinh.danhSachHinh.Count, HinhHienTai); //thêm hình mới vào list IsNewPolygon = true; } else { HinhHienTai = null; } }