How to change ForeColor of SelectedItem in ListBox

时光毁灭记忆、已成空白 提交于 2020-01-02 07:04:44

问题


I am facing a little issue in my project how can I change fore-color of text of selected items in ListBox. I can select all items of ListBox but I don't know how to change fore-color of text of selected items.

This code am using in my project for select listbox items

for (int i = 0; i < lbProductsToBuy.Items.Count; i++)
{
     lbProductsToBuy.SetSelected(i,true);
}
printreceiptToken1();
dataGridView67.Rows.Clear();

Thanks. In these images you can see UI of my application. image1 and image2. See this last image, I want to change this selected items fore-color.


回答1:


You can set DrawMode property of ListBox to OwnerDrawFixed and then hanlde DrawItem event of the control and draw items yourself:

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
    var listBox = sender as ListBox;
    var backColor = this.BackColor;         /*Default BackColor*/
    var textColor = this.ForeColor;         /*Default ForeColor*/
    var txt = listBox.GetItemText(listBox.Items[e.Index]);
    if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
    {
        backColor = Color.RoyalBlue;        /*Seletion BackColor*/
        textColor = Color.Yellow;           /*Seletion ForeColor*/
    }
    using (var brush = new SolidBrush(backColor))
        e.Graphics.FillRectangle(brush, e.Bounds);
    TextRenderer.DrawText(e.Graphics, txt, listBox.Font, e.Bounds, textColor,
        TextFormatFlags.VerticalCenter | TextFormatFlags.Left);
}



来源:https://stackoverflow.com/questions/38414106/how-to-change-forecolor-of-selecteditem-in-listbox

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!