Когда я нажимаю на listBox1, чтобы выбрать элемент, элемент остается синим цветом вокруг него. Как я могу удалить этот цвет?
Используйте этот код, чтобы изменить цвет выбора на любой цвет, который вы хотите:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//Add this to your form initialization
this.listBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem);
}
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index < 0) return;
//if the item state is selected them change the back color
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
e = new DrawItemEventArgs(e.Graphics,
e.Font,
e.Bounds,
e.Index,
e.State ^ DrawItemState.Selected,
e.ForeColor,
Color.Transparent);//Choose the color
// Draw the background of the ListBox control for each item.
e.DrawBackground();
// Draw the current item text
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, Brushes.Black, e.Bounds, StringFormat.GenericDefault);
// If the ListBox has focus, draw a focus rectangle around the selected item.
e.DrawFocusRectangle();
}
}
Я использовал прозрачный цвет, чтобы удалить цвет фона выделения, но если вы хотите, чтобы любой другой цвет просто изменил его самостоятельно.
Я использовал этот ответ в качестве справки: Как изменить цвет фона выбора ListBox?
Показать по форме:
Если вы хотите отменить выбор элемента в списке, используйте
listBox1.ClearSelected();
или
listBox1.SelectedIndex = -1;
Ура!
для ListBox вы можете написать такой код:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string s = string.Empty;
if (listBox1.SelectedIndex != -1)
s = listBox1.SelectedItem.ToString();
/// continue you code here ....
///
/// after that remove the hilight
listBox1.SelectedIndex = -1;
}