- [DATABASE] Hướng dẫn thêm và cập nhật Extended Property Column trong Table Sqlserver
- [DEVEXPRESS] Hướng dẫn sử dụng Vertical Gridview để hiển thị thông tin sản phẩm
- [C#] Hướng dẫn sử dụng Json Schema để Validate chuỗi string có phải json
- [C#] Hướng dẫn sử dụng công cụ Clean Code trên Visual Studio
- [C#] Hướng dẫn Drag and Drop File vào RichTextBox
- [C#] Hướng dẫn tạo hiệu ứng Karaoke Text Effect Winform
- [C#] Sử dụng thư viện ZedGraph vẽ biểu đồ Line, Bar, Pie trên Winform
- [DATABASE] Hướng dẫn sort sắp xếp địa chỉ IP trên sqlserver sử dụng hàm PARSENAME
- [C#] Theo dõi sử kiện process Start hay Stop trên Winform
- [ASP.NET] Chia sẻ source code chụp hình sử dụng camera trên website
- [C#] Chạy ứng dụng trên Virtual Desktop (màn hình ảo) Winform
- [C#] Mã hóa và giải mã Data Protection API trên winform
- [C#] Hướng dẫn tạo Gradient Background trên Winform
- [DATABASE] Hướng dẫn convert Epoch to DateTime trong sqlserver
- [DATABASE] Hướng dẫn sử dụng STRING_AGG và CONCAT_WS trong sqlserver 2017
- [C#] Hướng dẫn Copy With All Property in Class Object
- [DEVEXPRESS] Hướng dẫn load Json DataSource vào GridView
- [C#] Hướng dẫn tạo chữ ký trên winform Signature Pad
- [DEVEXPRESS] Format code T-SQL highlight in RichEditControl
- [C#] Hướng dẫn upload file, hình ảnh từ Winform lên server API ASP.NET Core
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 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 ^^)