• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Tạo hiệu ứng bóng đổ cho listBox

Các thủ thuật liên quan đến ứng dụng, biểu mẫu và control

Điều hành viên: tungcan5diop, QUANITGROBEST

Hình đại diện của người dùng
NoBi
Quản trị
Quản trị
Bài viết: 951
Ngày tham gia: T.Ba 18/03/2008 1:22 pm
Đến từ: Sài Gòn
Has thanked: 50 time
Been thanked: 66 time
Liên hệ:

Tạo hiệu ứng bóng đổ cho listBox

Gửi bàigửi bởi NoBi » T.Sáu 28/03/2008 3:11 pm

Thủ thuật: Tạo hiệu ứng bóng đổ cho listBox
Tác giả: Sưu tầm
Mô tả: Với những dòng code sau, bạn có thể "trang trí" cho listbox của mình thêm đẹp với hiệu ứng bóng đổ trên nền Form.
---------------------------------------------------
Tạo project Windows Forms, kẻo thả ListBox control đến Form của bạn (tên mặc định của listbox mới thêm sẽ là: listBox1)
Thêm hàm sau vào cửa sổ code:
Mã C#

Mã: Chọn hết

  1. private void AddShadow(PaintEventArgs e)
  2. {
  3.     SizeF shadowSize = listBox1.Size;
  4.     SizeF addSize = new SizeF(10.5F, 20.8F);
  5.     shadowSize = shadowSize + addSize;
  6.     PointF shadowLocation = listBox1.Location;
  7.     shadowLocation = shadowLocation + new Size(5, 5);
  8.     // tạo 1 hình chữ nhật
  9.     RectangleF rectFToFill =
  10.         new RectangleF(shadowLocation, shadowSize);
  11.  
  12.     //tạo 1 brush có màu xám (màu của bóng)
  13.     Color customColor = Color.FromArgb(50, Color.Gray);
  14.     SolidBrush shadowBrush = new SolidBrush(customColor);
  15.     //và tô đầy nó trong lòng hình chữ nhật
  16.     e.Graphics.FillRectangles(shadowBrush, new RectangleF[] { rectFToFill });
  17.     shadowBrush.Dispose();
  18. }

Bây giờ bạn thụ lý đoạn mã cho sự kiện Paint của Form chính như sau:

Mã: Chọn hết

  1. private void Form1_Paint(object sender, PaintEventArgs e)
  2. {
  3.     AddShadow(e);
  4. }



Mã VB.Net

Mã: Chọn hết

  1. Public Class Form1
  2.  
  3.     Private Sub AddShadow(ByVal e As PaintEventArgs)
  4.  
  5.         Dim shadowSize As SizeF = ListBox1.Size
  6.         Dim addSize As SizeF = New SizeF(10.5F, 20.8F)
  7.         shadowSize = shadowSize + addSize
  8.         Dim shadowLocation As PointF = ListBox1.Location
  9.         shadowLocation = shadowLocation + New Size(5, 5)
  10.         ' tạo 1 hình chữ nhật
  11.         Dim rectFToFill As RectangleF = New RectangleF(shadowLocation, shadowSize)
  12.  
  13.         'tạo 1 brush có màu xám (màu của bóng)
  14.         Dim customColor As Color = Color.FromArgb(50, Color.Gray)
  15.         Dim shadowBrush As SolidBrush = New SolidBrush(customColor)
  16.         'và tô đầy nó trong lòng hình chữ nhật
  17.         e.Graphics.FillRectangles(shadowBrush, New RectangleF() {rectFToFill})
  18.         shadowBrush.Dispose()
  19.     End Sub
  20.  
  21.     Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
  22.         AddShadow(e)
  23.     End Sub
  24. End Class


http://forums.congdongcviet.com/showthread.php?t=2413


:>

Quay về “[.NET] Ứng dụng - Form và Control”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.0 khách