Tôi đang cố gắng thay đổi màu nền của một số hàng trong một ListBox
. Tôi có hai danh sách có một danh sách và được hiển thị trong một số ListBox
. Danh sách thứ hai có một số giá trị tương tự như List
đầu tiên. Khi nhấp vào nút, tôi muốn tìm kiếm ListBox
và số List
thứ hai và thay đổi màu của ListBox
cho các giá trị đó xuất hiện trong List
. tìm kiếm của tôi trong ListBox
là như sau:C#: thay đổi màu hàng của hộp danh sách?
for (int i = 0; i < listBox1.Items.Count; i++)
{
for (int j = 0; j < students.Count; j++)
{
if (listBox1.Items[i].ToString().Contains(students[j].ToString()))
{
}
}
}
Nhưng tôi không biết đó là phương pháp sử dụng để thay đổi sự xuất hiện của một hàng ListBox
. Ai có thể giúp tôi?
** EDIT: **
HI tôi đã viết mã của tôi như sau:
private void ListBox1_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
Graphics g = e.Graphics;
Brush myBrush = Brushes.Black;
Brush myBrush2 = Brushes.Red;
g.FillRectangle(new SolidBrush(Color.Silver), e.Bounds);
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush, e.Bounds, StringFormat.GenericDefault);
for (int i = 0; i < listBox1.Items.Count; i++)
{
for (int j = 0; j < existingStudents.Count; j++)
{
if (listBox1.Items[i].ToString().Contains(existingStudents[j]))
{
e.Graphics.DrawString(listBox1.Items[i].ToString(),
e.Font, myBrush2, e.Bounds, StringFormat.GenericDefault);
}
}
}
e.DrawFocusRectangle();
}
Bây giờ nó thu hút tôi List
trong ListBox
, nhưng khi tôi nhấp vào nút đầu tiên, nó cho thấy màu đỏ chỉ những sinh viên đang ở trong số List
và khi tôi nhấp vào ListBox
, nó thu hút tất cả các yếu tố. Tôi muốn nó sẽ hiển thị tất cả các yếu tố và khi tôi nhấp vào nút, nó sẽ hiển thị tất cả các phần tử và phần tử được tìm thấy trong màu List
màu đỏ. Sai lầm của tôi đâu rồi?
Vẽ tự mình sử dụng OwnerDraw: http://www.c-sharpcorner.com/UploadFile/sahuja/OwnerDrawListBox11212005014826AM/OwnerDrawListBox.aspx –
trùng lặp có thể xảy ra http://stackoverflow.com/questions/1243870/changing- chọn-itms-color-in-a-listbox –
Sau khi cập nhật của bạn: dường như bạn không nhận được những gì người trả lời trước đây dưới đây cho bạn thấy. Phương thức DrawItem _ rút một item_, không phải nhiều mục. Bạn sẽ cần phải xử lý _each mục khi cần thiết, và ** không ** sử dụng một vòng lặp for để xử lý các mục _all_. Hãy xem câu trả lời của Thomas Levesque hoặc Justin cho những ví dụ hay. –