này sẽ rút ra những TreeNode
văn bản, nơi hình ảnh cần phải có được, loại bỏ các khoảng trắng.
Bạn cần đặt thuộc tính's DrawMode
thành OwnerDrawText
. Bạn có thể tìm thấy thuộc tính DrawMode
trong bảng thuộc tính.
Tiếp theo khi bạn thêm nút, hãy đặt số đó là ImageIndex
và SelectedImageIndex
lớn hơn giá trị yourImageListName.Images.Count
giá trị của bạn. Điều này là không có hình ảnh sẽ được rút ra, nhưng vẫn sẽ có không gian màu trắng mà bạn không muốn.
Bây giờ để loại bỏ khoảng trắng. Thêm một xử lý cho sự kiện treeview DrawNode
. Điều này có thể được thực hiện bằng cách vào bảng thuộc tính treeviews và nhấp vào biểu tượng trong bảng điều khiển trông giống như một tia sáng, sau đó cuộn cho đến khi bạn thấy văn bản DrawNode
, nhấp đúp vào nó.
Bây giờ bạn chỉ cần sao chép và dán vào những phương pháp tạo
if (e.Node.ImageIndex >= e.Node.TreeView.ImageList.Images.Count) // if there is no image
{
int imagewidths = e.Node.TreeView.ImageList.ImageSize.Width;
int textheight = TextRenderer.MeasureText(e.Node.Text, e.Node.NodeFont).Height;
int x = e.Node.Bounds.Left - 3 - imagewidths/2;
int y = (e.Bounds.Top + e.Bounds.Bottom)/2+1;
Point point = new Point(x - imagewidths/2, y - textheight/2); // the new location for the text to be drawn
TextRenderer.DrawText(e.Graphics, e.Node.Text, e.Node.NodeFont, point, e.Node.ForeColor);
}
else // drawn at the default location
TextRenderer.DrawText(e.Graphics, e.Node.Text, e.Node.TreeView.Font, e.Bounds, e.Node.ForeColor);
bạn có thể xác định nếu điều này được sử dụng trong một trang web hay ứng dụng winforms, xin vui lòng? – splattne
Xong - winforms. – Simon