private void listBoxEx1_MeasureItem(object sender, MeasureItemEventArgs e)
{
e.ItemHeight = 15;
}
private void listBoxEx1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index >= 0)
{
bool isSelected = (e.State & DrawItemState.Selected) == DrawItemState.Selected;
string t = listBoxEx1.Items[e.Index].ToString();
e.Graphics.DrawString(t, listBoxEx1.Font, Brushes.Lime, new PointF(0.0f, e.Bounds.Y));
if (isSelected)
{
e.Graphics.DrawRectangle(Pens.White, e.Bounds);
}
}
}
private void listBoxEx1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
}
private void listBoxEx1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] strings = (string[])e.Data.GetData(DataFormats.FileDrop);
listBoxEx1.Items.AddRange(strings);
}
}
private void listBoxEx1_SelectedIndexChanged(object sender, EventArgs e)
{
listBoxEx1.Refresh();
}
Мерцает при переключении элементов мышью или клавиатурой.
Перепробовал разные способы из интернета. Один из них помогает, но после ресайза формы мерцания возобновляются.
А вот так
private void listBoxEx1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index >= 0)
{
Bitmap bitmap = new Bitmap(e.Bounds.Width, e.Bounds.Height);
Graphics g = Graphics.FromImage(bitmap);
g.DrawIcon(Resources.someIcon, bitmap.Width, bitmap.Height);
e.Graphics.DrawImage(bitmap, 0, 0);
g.Dispose();
bitmap.Dispose();
}
}
вообще ничего не выводится. Хотя ведь должно?