Zmiania koloru Menu po najechaniu.

0

Witam Państwa.
Ogólnie problem wydaje się banalny bo niby wystarczy poniższy kod, odpowiednia zmiana w zawartości EventHandlerze dotyczącym przycisku i powinno działać.

private void MenuItemMouseEnter(object sender, EventArgs e)
{
    (sender as ToolStripMenuItem).BackColor = Color.White;
} 

I działa na przyciskach i innych. Na Menu już niekoniecznie, ponieważ gdy najadę myszką na item Menu to uruchamia się inna metoda, która zmienia kolor na jasnoniebieski. Najprawdopodobniej z klasy pierwotnej. Czy ktoś jest w stanie odpowiedzieć jak zmienić, aby malowała obiekt na dowolny kolor?

0

Jest taka "tabela" kolorów domyślnych dla Windows Forms - ProfessionalColorTable;
Na potrzeby renderowania podpina się ją tak:

menuStrip1.Renderer = new ToolStripProfessionalRenderer(new ProfessionalColorTable());

Żeby zmienić jakiś kolor, musisz stworzyć własną klasę dziedziczącą po ProfessionalColorTable i nadpisać wybraną właściwość, np:

class MyProfessionalColors : ProfessionalColorTable
 {
//to cię właśnie interesuje
public override Color MenuItemSelectedGradientBegin
  { get { return Color.White; } }
 }

//i gdzieś tam
menuStrip1.Renderer = new ToolStripProfessionalRenderer(new MyProfessionalColorTable());

1 użytkowników online, w tym zalogowanych: 0, gości: 1