• 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ôi có thể thêm text vào một listView của biểu tượng ?

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Điều hành viên: tungblt, vuathongtin

dong
Thành viên ưu tú
Thành viên ưu tú
Bài viết: 658
Ngày tham gia: T.Năm 03/04/2008 7:46 am
Has thanked: 13 time
Been thanked: 2 time

Tôi có thể thêm text vào một listView của biểu tượng ?

Gửi bàigửi bởi dong » T.Hai 08/01/2018 8:51 am

Tôi có thể chèn thêm text vào biểu tượng của listView, viết code như thế nào ? Bạn xem tập tin hình ảnh đính kèm, ví dụ này tôi thêm từ "đặc biệt" màu xanh lá cây. http://www.mediafire.com/view/7sosjkndd ... acbiet.jpg



FlyingFox
Guru
Guru
Bài viết: 808
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 320 time

Re: Tôi có thể thêm text vào một listView của biểu tượng ?

Gửi bàigửi bởi FlyingFox » T.Ba 09/01/2018 9:47 am


dong
Thành viên ưu tú
Thành viên ưu tú
Bài viết: 658
Ngày tham gia: T.Năm 03/04/2008 7:46 am
Has thanked: 13 time
Been thanked: 2 time

Re: Tôi có thể thêm text vào một listView của biểu tượng ?

Gửi bàigửi bởi dong » T.Tư 10/01/2018 8:32 am

link này mình cũng xem rồi, nó chạy 3 sự kiện dưới để load ảnh vào listView để chạy được 3 sự kiện này thì phải đặt this.listView1.OwnerDraw = true; trong ví dụ của mình vừa có icon vừa có chữ khi gặp câu lệnh này OwnerDraw = true; các icon không hiển thị được(nó ở trạng thái trong suốt). chú ý các icon bị trong suốt khi chưa chạy các khối lệnh của 3 sự kiện ở dưới.

Mã: Chọn hết

this.listView1.DrawItem += new System.Windows.Forms.DrawListViewItemEventHandler(this.listView1_DrawItem);
this.listView1.DrawSubItem += new System.Windows.Forms.DrawListViewSubItemEventHandler(this.listView1_DrawSubItem);
this.listView1.DrawColumnHeader += new System.Windows.Forms.DrawListViewColumnHeaderEventHandler(this.listView1_DrawColumnHeader);

FlyingFox
Guru
Guru
Bài viết: 808
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 320 time

Re: Tôi có thể thêm text vào một listView của biểu tượng ?

Gửi bàigửi bởi FlyingFox » T.Tư 10/01/2018 9:23 am

Bạn upload cái demo đó xem dể hiểu hơn.

dong
Thành viên ưu tú
Thành viên ưu tú
Bài viết: 658
Ngày tham gia: T.Năm 03/04/2008 7:46 am
Has thanked: 13 time
Been thanked: 2 time

Re: Tôi có thể thêm text vào một listView của biểu tượng ?

Gửi bàigửi bởi dong » T.Tư 10/01/2018 3:55 pm

bạn vào frmArticle và tìm this.myListView.OwnerDraw = true; đây nè bạn http://www.mediafire.com/file/8n83pgbuf ... ddText.rar

FlyingFox
Guru
Guru
Bài viết: 808
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 320 time

Re: Tôi có thể thêm text vào một listView của biểu tượng ?

Gửi bàigửi bởi FlyingFox » T.Năm 11/01/2018 6:46 am

Viết code cho ListView DrawItem thay vì DrawSubItem.
  1. // Draw column header
  2. private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
  3. {
  4.     e.DrawDefault = true;
  5. }
  6.  
  7. // Draw the item's logo (view icon).
  8. private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
  9. {
  10.     ListViewItem item = e.Item;
  11.     e.DrawBackground();
  12.     e.Graphics.DrawImage(myImageList1.Images[e.ItemIndex], e.Bounds.Location);
  13.     using (SolidBrush br = new SolidBrush(Color.Blue))
  14.     {
  15.         using (StringFormat format = new StringFormat())
  16.         {
  17.             format.Alignment = StringAlignment.Center;
  18.             format.LineAlignment = StringAlignment.Center;
  19.             using (Font font = new Font(myListView.Font.Name, 10, FontStyle.Bold))
  20.             {
  21.                 e.Graphics.DrawString("Special", font, br, e.Bounds, format);
  22.             }
  23.         }
  24.     }
  25. }
  26.  
  27. // Draw subitems for Detail view.
  28. private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
  29. {
  30.     e.DrawDefault = true;
  31. }

dong
Thành viên ưu tú
Thành viên ưu tú
Bài viết: 658
Ngày tham gia: T.Năm 03/04/2008 7:46 am
Has thanked: 13 time
Been thanked: 2 time

Re: Tôi có thể thêm text vào một listView của biểu tượng ?

Gửi bàigửi bởi dong » T.Năm 11/01/2018 1:03 pm

ví dụ này thì Ok rồi nhưng các từ "item i" dưới các Icon bị mất, nó ẩn item thì phải ?

FlyingFox
Guru
Guru
Bài viết: 808
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 320 time

Re: Tôi có thể thêm text vào một listView của biểu tượng ?

Gửi bàigửi bởi FlyingFox » T.Năm 11/01/2018 2:08 pm

Vậy phải viết như sau:
  1. private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
  2. {
  3.     ListViewItem item = e.Item;
  4.     e.DrawBackground();
  5.     e.Graphics.DrawImage(myImageList1.Images[e.ItemIndex], e.Bounds.Location);
  6.     using (SolidBrush br = new SolidBrush(Color.Blue))
  7.     {
  8.         using (StringFormat format = new StringFormat())
  9.         {
  10.             format.Alignment = StringAlignment.Center;
  11.             format.LineAlignment = StringAlignment.Center;
  12.             using (Font font = new Font(myListView.Font.Name, 10, FontStyle.Bold))
  13.             {
  14.                 e.Graphics.DrawString("Special", font, br, e.Bounds, format);
  15.                 br.Color = Color.Black;
  16.                 format.LineAlignment = StringAlignment.Far;
  17.                 e.Graphics.DrawString("Item " + (e.ItemIndex + 1).ToString(), font, br, e.Bounds, format);
  18.             }
  19.         }
  20.     }
  21. }

dong
Thành viên ưu tú
Thành viên ưu tú
Bài viết: 658
Ngày tham gia: T.Năm 03/04/2008 7:46 am
Has thanked: 13 time
Been thanked: 2 time

Re: Tôi có thể thêm text vào một listView của biểu tượng ?

Gửi bàigửi bởi dong » T.Sáu 12/01/2018 8:55 am

Cám ơn bạn nhiều.


Quay về “Visual Basic .NET và C# (VB.NET & C#)”

Đ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.2 khách