Ir para conteúdo
Fórum Script Brasil
  • 0

Mudar a cor do MenuStrip


alexandremanowar

Pergunta

E ea pessoal beleza

Eu estou usando o vs 2008 em um projeto desktop e estou arrumando um layout de menu, mudei a cor do menu belezinha mas não consigo mudar aquela cor do menu quando eu apenas passo ou mouse nas opções do menu? E a cor de quando clico em um menu e ele muda só a cor daquela opção que escolhi, também não consigo mudar.

Preciso mudar isso porque essas cores parão que já estão nela não estão legal com a cor que estou usando no menu

Alguém sabe me dizer como mudo essas opções?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

No 2005 eu faço isso criando uma subclasse de ProfessionalColorTable onde sobrescrevo as propriedades com as cores desejadas para cada parte do menu (o próprio menu, opções, bordas, etc.), exemplo:

Public Class CoresStrip
    Inherits ProfessionalColorTable

    Public Overrides ReadOnly Property MenuStripGradientBegin() As System.Drawing.Color
        Get
            Return Color.WhiteSmoke
        End Get
    End Property

    Public Overrides ReadOnly Property MenuStripGradientEnd() As System.Drawing.Color
        Get
            Return Color.DarkGray
        End Get
    End Property

    Public Overrides ReadOnly Property MenuBorder() As System.Drawing.Color
        Get
            Return Color.Black
        End Get
    End Property

    Public Overrides ReadOnly Property MenuItemSelected() As System.Drawing.Color
        Get
            Return Color.Khaki
        End Get
    End Property

    Public Overrides ReadOnly Property MenuItemBorder() As System.Drawing.Color
        Get
            Return Color.Firebrick
        End Get
    End Property

    Public Overrides ReadOnly Property MenuItemPressedGradientBegin() As System.Drawing.Color
        Get
            Return Color.White
        End Get
    End Property

    Public Overrides ReadOnly Property MenuItemPressedGradientMiddle() As System.Drawing.Color
        Get
            Return Color.NavajoWhite
        End Get
    End Property

    Public Overrides ReadOnly Property MenuItemPressedGradientEnd() As System.Drawing.Color
        Get
            Return Color.Khaki
        End Get
    End Property

    Public Overrides ReadOnly Property ImageMarginGradientBegin() As System.Drawing.Color
        Get
            Return Color.Gray
        End Get
    End Property

    Public Overrides ReadOnly Property ImageMarginGradientMiddle() As System.Drawing.Color
        Get
            Return Color.LightGray
        End Get
    End Property

    Public Overrides ReadOnly Property ImageMarginGradientEnd() As System.Drawing.Color
        Get
            Return Color.WhiteSmoke
        End Get
    End Property
End Class
Depois, basta colocar no Load do seu form:
MenuStrip1.RenderMode = ToolStripRenderMode.Professional
MenuStrip1.Renderer = New ToolStripProfessionalRenderer(New CoresStrip())

Onde "MenuStrip1" é o menu em questão.

Lembrando que a subclasse acima também pode ser utilizada para trocar as cores dos outros controles da família Strip (ToolStrip, StatusStrip e ContextMenuStrip).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

E a e beleza

Então testei o código aqui e funcionou legal mesmo, porém estou tentando manipulas a cor de uma parte do menu e não consigo é a o seguinte quando passo o mouse nas opções do menu sem clicar em nada apenas passo o mouse a opção que estou passando o mouse mudar de cor, essa cor de quando passo o mouse não consigo mudar! Estou falando do menu sem dar clique nenhum tipo quando passo o mouse nas opção "Arquivo,Editar,Exibir,...", criei um menu com essas opções quando passo o mouse sem clicar ela muda de cor mas não consegui mudar essa cor, como mudo ela? AS Demais cores como cores de click, cor de submenu quando possa o mouse, essas consegui mudar falta apena essas que estou falando. Como corrijo isso tentei assim:

Public ReadOnly Property MenuSelected() As System.Drawing.Color
        Get
            Return Color.Blue

        End Get
    End Property
Public Overrides ReadOnly PropertyMenuSelected() As System.Drawing.Color
        Get
            Return Color.Blue

        End Get
    End Property

Tentei outras formas mas não consegui. Alguém sabe onde estou errando?

Link para o comentário
Compartilhar em outros sites

  • 0

Fala galera, segue abaixo o codigo em C#.

class CoresStrip : ProfessionalColorTable
    {
        /// <summary>
        /// MenuStripGradientBegin
        /// </summary>
        public override System.Drawing.Color MenuStripGradientBegin
        {
            get 
            {
                return Color.WhiteSmoke;
            }
        }
        /// <summary>
        /// MenuStripGradientEnd
        /// </summary>
        public override System.Drawing.Color MenuStripGradientEnd
        {
            get
            {
                return Color.DarkGray;
            }
        }
        /// <summary>
        /// MenuBorder
        /// </summary>
        public override System.Drawing.Color MenuBorder
        {
            get
            {
                return Color.Black;
            }
        }
        /// <summary>
        /// MenuItemSelected
        /// </summary>
        public override System.Drawing.Color MenuItemSelected
        {
            get
            {
                return Color.Khaki;
            }
        }
        /// <summary>
        /// MenuItemBorder
        /// </summary>
        public override System.Drawing.Color MenuItemBorder
        {
            get
            {
                return Color.Firebrick;
            }
        }
        /// <summary>
        /// MenuItemPressedGradientBegin
        /// </summary>
        public override System.Drawing.Color MenuItemPressedGradientBegin
        {
            get
            {
                return Color.White;
            }
        }
        /// <summary>
        /// MenuItemPressedGradientMiddle
        /// </summary>
        public override System.Drawing.Color MenuItemPressedGradientMiddle
        {
            get
            {
                return Color.NavajoWhite;
            }
        }
        /// <summary>
        /// MenuItemPressedGradientEnd
        /// </summary>
        public override System.Drawing.Color MenuItemPressedGradientEnd
        {
            get
            {
                return Color.Khaki;
            }
        }
        /// <summary>
        /// ImageMarginGradientBegin
        /// </summary>
        public override System.Drawing.Color ImageMarginGradientBegin
        {
            get
            {
                return Color.Gray;
            }
        }
        /// <summary>
        /// ImageMarginGradientMiddle
        /// </summary>
        public override System.Drawing.Color ImageMarginGradientMiddle
        {
            get
            {
                return Color.LightGray;
            }
        }
        /// <summary>
        /// ImageMarginGradientEnd
        /// </summary>
        public override System.Drawing.Color ImageMarginGradientEnd
        {
            get
            {
                return Color.WhiteSmoke;
            }
        }
    }

Editado por quintelab
Adicionado BBCode Code
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...