我想使用window的菜单背景是逐变的,写了如下代码:
        private void menuStrip1_Paint(object sender, PaintEventArgs e)
        {
            Rectangle gridBounds = new Rectangle(0, 0, this.Width, menuStrip1.Height);
            Graphics graphics = Graphics.FromHwnd(this.menuStrip1.Handle);
            LinearGradientBrush bgBrush = new LinearGradientBrush(gridBounds, Color.FromArgb(110, 150, 168), Color.FromArgb(25, 168, 255), LinearGradientMode.Horizontal);
            graphics.FillRectangle(bgBrush, gridBounds);
            //menuStrip1.Refresh(); 
        }
现在有如下错误,请问怎样解决:
1、窗体load完毕,菜单的backColor并没有应用我给的逐变
2、当鼠标移动到菜单时,开始有逐变的效果,但是将菜单上的名称覆盖了,只有鼠标点击的当前名称才会显示出来
请问怎样解决这些问题?
谢谢

解决方案 »

  1.   


    各位大虾帮助看看下面的问题吧,我关于想要Button的BackColor达到渐变的效果在Form上有一个button,我写了如下的代码,为什么Button的BackColor的颜色没有变化        private void button1_Paint(object sender, PaintEventArgs e)
            {
                Rectangle r = new Rectangle(button1.Left, button1.Top, button1.Width, button1.Height);
                LinearGradientBrush lb = new LinearGradientBrush(r, Color.Red, Color.Yellow, LinearGradientMode.BackwardDiagonal);
                e.Graphics.FillRectangle(lb, r);
            }