リスト ボックス項目の背景をさまざまな色で強調表示する方法を見つけようとしていますが、この 4 年前のクローズド スレッドに出くわしました。
私は彼の方法を使用する方法に従っていません。では、listBox1 という名前のオブジェクトと strSomeString という名前の文字列変数を作成した場合、strSomeString を listBox1 に赤い背景で追加するための正確なコードは何でしょうか?
ここで Shadow Wizard のコードを使用します。
private void lbReports_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
bool selected = ((e.State & DrawItemState.Selected) == DrawItemState.Selected);
int index = e.Index;
if (index >= 0 && index < lbReports.Items.Count)
{
string text = lbReports.Items[index].ToString();
Graphics g = e.Graphics;
Color color = (selected) ? Color.FromKnownColor(KnownColor.Highlight) : (((index % 2) == 0) ? Color.White : Color.Gray);
g.FillRectangle(new SolidBrush(color), e.Bounds);
// Print text
g.DrawString(text, e.Font, (selected) ? reportsForegroundBrushSelected : reportsForegroundBrush,
lbReports.GetItemRectangle(index).Location);
}
e.DrawFocusRectangle();
}
-ありがとう