0

C# 現在、win フォームがあり、Listbox にある 2 つのリストを表示できますが、2 つのリストがマージされているため、データが少しわかりにくい場合があります。List 1 の項目の色を青に、List 2 の項目の色を赤に設定する方法はありますか?

private void updatesum()
{
  listBox.Items.Clear();
  List<String> listOfDels = theDatabase.listDeliveries();
  List<String> listofPicks = theDatabase.listPickups();

  listBox.Items.AddRange(listOfDels.ToArray());
  listBox.Items.AddRange(listofPicks.ToArray());
}
4

2 に答える 2

2

ListBox の DrawItem をサブスクライブし、自分で BackColor をペイントする必要があります。

listBox.DrawItem += new DrawItemEventHandler(listBox_DrawItem);

あなたのイベントは次のようなものであるべきだと思います:

private void listBox_DrawItem(object sender, DrawItemEventArgs e)
{
    e.DrawBackground();
    Graphics g = e.Graphics;

    g.FillRectangle(new SolidBrush(Color.Blue), e.Bounds);

    g.DrawString(listBox.Items[e.Index].ToString(), 
        e.Font, Brushes.Black, e.Bounds, StringFormat.GenericDefault);

    e.DrawFocusRectangle();
}
于 2012-11-27T14:48:23.997 に答える
0

同様の質問 SOに対する他の回答をここここで確認してください。私はそれをやったことがありませんが、彼らは法案に合っているようです. それが役に立てば幸い。

于 2012-11-27T14:25:02.943 に答える