Как изменить цвет выбранного элемента двойным щелчком мыши или любым другим способом
Hello I want to change the color of a selected item in ListBox1 by DoubleClick on that item, I drew the items in different colors in formload but I could not change the color of any items after formload ,i tried double click
Что я уже пробовал:
private void FormLoad(object sender, EventArgs e) { Global_A = 1; ListBox1.Items.AddRange(new Object[] { "Red Item", "Orange Item", "Purple Item" }); ListBox1.Location = new System.Drawing.Point(81, 69); ListBox1.Size = new System.Drawing.Size(120,95); ListBox1.DrawMode = DrawMode.OwnerDrawFixed; ListBox1.DrawItem += new DrawItemEventHandler(ListBox1_DrawItem); //ListBox1.SelectedIndexChanged += new System.EventHandler(ListBox1_SelectedIndexChanged); Controls.Add(ListBox1); Global_A = 2; Global_id = 2; }//FormLoad private void ListBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) { if(e.Index < 0) return; if (Global_A == 1) {e.DrawBackground(); Brush myBrush = Brushes.Black; switch (e.Index) { case 0: myBrush = Brushes.Red; break; case 1: myBrush = Brushes.Orange; break; case 2: myBrush = Brushes.Purple; break; } e.Graphics.DrawString(ListBox1.Items[e.Index].ToString(), e.Font, myBrush, e.Bounds, StringFormat.GenericDefault); e.DrawFocusRectangle(); } else if (Global_A == 2) { e.DrawBackground(); Graphics g = e.Graphics; //Brush myBrush = Brushes.Black; Brush myBrush2 = Brushes.Red; //g.FillRectangle(new SolidBrush(Color.Silver), e.Bounds); //e.Graphics.DrawString(ListBox1.Items[e.Index].ToString(), e.Font, myBrush, e.Bounds, StringFormat.GenericDefault); e.Graphics.DrawString(ListBox1.Items[id].ToString(),e.Font, myBrush2, e.Bounds, StringFormat.GenericDefault); e.DrawFocusRectangle(); }//A=2 }
Gerry Schmitz
Вы будете писать меньше кода, который более интуитивно понятен в WPF / UWP / XAML.
Engineer khalid
у меня нет никаких знаний в wpf/ UWP / XAML.
я только что улучшил этот вопрос...