02/10/2018, 00:02

Chụp hình lại từng control trên Form một cách đơn giản

Bài viết hôm nay mình giới thiệu các bạn cách làm thế nào để chụp hình tức thời của từng control đang có trên form của mình. Bài này chủ yếu mang tính giải trí thôi nhưng thông qua đó bạn biết thêm một vài lệnh về Graphics nếu bạn sáng tạo có thể tạo được thêm ...

Bài viết hôm nay mình giới thiệu các bạn cách làm thế nào để chụp hình tức thời của từng control đang có trên form của mình. Bài này chủ yếu mang tính giải trí thôi nhưng thông qua đó bạn biết thêm một vài lệnh về Graphics nếu bạn sáng tạo có thể tạo được thêm nhiều tiện ích khác từ nó. Bài này mình làm đơn giản chủ yếu giới thiệu cho bạn cách nó hoạt động còn muốn phát triển thêm thì tùy vào sự sáng tạo của các bạn đó:

Bạn thiết kế form như hình sau nhé:

Đoạn này là hàm để chụp lại một control bất kỳ. Đối tượng truyền vào là control cần chụp lại hình và kết quả trả về sẽ hiển thị lên PictureBox bên dưới

void ControlToBitmap(Control ctrol)
        {
            Size ctrlSize = ctrol.Size;
            Rectangle rect = new Rectangle(new Point(0, 0), ctrlSize);
            Bitmap bitmap = new Bitmap(ctrlSize.Width, ctrlSize.Height);
            ctrol.DrawToBitmap(bitmap, rect);
            Bitmap result = new Bitmap(ctrlSize.Width, ctrlSize.Height);
            Graphics g = Graphics.FromImage(result);
            rect.Size = ctrlSize;
            g.DrawImage(bitmap, rect);
            picResult.Image = result;
        }

Còn đây là code cho nút "Chụp"

private void btnCapture_Click(object sender, EventArgs e)
        {
            switch (cboChoose.SelectedIndex)
            {
                case 0:
                    ControlToBitmap(button2);
                    break;
                case 1:
                    ControlToBitmap(comboBox2);
                    break;
                case 2:
                    ControlToBitmap(pictureBox1);
                    break;
                case 3:
                    ControlToBitmap(textBox1);
                    break;
                default:
                    break;
            }
        }

Ở ví dụ trên của mình các bạn có thể gõ text vào trong TextBox, Chọn hình khác và chọn Item khác trên Combobox rồi "Chụp" lại để thấy sự thay đổi

Chúc các bạn vui với bài tập trên!

Download (nếu các bạn làm biếng code lại ^^)

Tags: controlimagehình ảnh
0