winform修改菜单背景色后不显示,依旧是默认背景色,求解答

时间:2022-06-27 14:50:16
winform修改菜单背景色后不显示,依旧是默认背景色,求解答如图所示,我明明修改了背景色,还是没有发生改变,求解答

11 个解决方案

#1


VS2010版本

#2


在线等答案,求速度

#3


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (ToolStripItem item in menuStrip1.Items)
            {
                EnumChildMenu(item);
            }
        }

        private void EnumChildMenu(ToolStripItem tsi)
        {
            OnFind(tsi);
            if (tsi is ToolStripMenuItem)
            {
                ToolStripMenuItem tsmi = tsi as ToolStripMenuItem;
                foreach (ToolStripItem item in tsmi.DropDownItems)
                {
                    EnumChildMenu(item);
                }
            }
        }

        private void OnFind(ToolStripItem tsi)
        {
            tsi.BackColor = Color.Blue;
        }
    }
}

#4


刚试了一下是可以的。vs2012,你设置好属性后,运行还是不变吗?

#5


引用 4 楼 guwei4037 的回复:
刚试了一下是可以的。vs2012,你设置好属性后,运行还是不变吗?
不知道什么原因,我新建一个项目测试一下可以改变背景色,可是原来的项目怎么都改不了,运行之后也改不了,还是默认背景色。

#6


引用 3 楼 caozhy 的回复:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (ToolStripItem item in menuStrip1.Items)
            {
                EnumChildMenu(item);
            }
        }

        private void EnumChildMenu(ToolStripItem tsi)
        {
            OnFind(tsi);
            if (tsi is ToolStripMenuItem)
            {
                ToolStripMenuItem tsmi = tsi as ToolStripMenuItem;
                foreach (ToolStripItem item in tsmi.DropDownItems)
                {
                    EnumChildMenu(item);
                }
            }
        }

        private void OnFind(ToolStripItem tsi)
        {
            tsi.BackColor = Color.Blue;
        }
    }
}
我不是需要代码改背景色,而是设计界面改不了

#7


那就是你这个项目代码的问题了,肯定在某个地方设置了什么属性或写了什么代码,导致设置失效。你得好好查一查。

#8


引用 6 楼 junlinfushi 的回复:
Quote: 引用 3 楼 caozhy 的回复:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (ToolStripItem item in menuStrip1.Items)
            {
                EnumChildMenu(item);
            }
        }

        private void EnumChildMenu(ToolStripItem tsi)
        {
            OnFind(tsi);
            if (tsi is ToolStripMenuItem)
            {
                ToolStripMenuItem tsmi = tsi as ToolStripMenuItem;
                foreach (ToolStripItem item in tsmi.DropDownItems)
                {
                    EnumChildMenu(item);
                }
            }
        }

        private void OnFind(ToolStripItem tsi)
        {
            tsi.BackColor = Color.Blue;
        }
    }
}
我不是需要代码改背景色,而是设计界面改不了

反正我告诉你我测试了是可以修改的。

#9


引用 8 楼 caozhy 的回复:
Quote: 引用 6 楼 junlinfushi 的回复:

Quote: 引用 3 楼 caozhy 的回复:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (ToolStripItem item in menuStrip1.Items)
            {
                EnumChildMenu(item);
            }
        }

        private void EnumChildMenu(ToolStripItem tsi)
        {
            OnFind(tsi);
            if (tsi is ToolStripMenuItem)
            {
                ToolStripMenuItem tsmi = tsi as ToolStripMenuItem;
                foreach (ToolStripItem item in tsmi.DropDownItems)
                {
                    EnumChildMenu(item);
                }
            }
        }

        private void OnFind(ToolStripItem tsi)
        {
            tsi.BackColor = Color.Blue;
        }
    }
}
我不是需要代码改背景色,而是设计界面改不了

反正我告诉你我测试了是可以修改的。
我新建项目测试了也可以,就是当前项目改不了,不懂哪里出了问题。

#10


引用 7 楼 guwei4037 的回复:
那就是你这个项目代码的问题了,肯定在某个地方设置了什么属性或写了什么代码,导致设置失效。你得好好查一查。
这个我没设置什么属性,也没写特殊代码,不知道是不是VS2010的问题还是机器问题

#11


你找到如何解决的办法了吗?我也遇到了,不知道如何解决

#1


VS2010版本

#2


在线等答案,求速度

#3


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (ToolStripItem item in menuStrip1.Items)
            {
                EnumChildMenu(item);
            }
        }

        private void EnumChildMenu(ToolStripItem tsi)
        {
            OnFind(tsi);
            if (tsi is ToolStripMenuItem)
            {
                ToolStripMenuItem tsmi = tsi as ToolStripMenuItem;
                foreach (ToolStripItem item in tsmi.DropDownItems)
                {
                    EnumChildMenu(item);
                }
            }
        }

        private void OnFind(ToolStripItem tsi)
        {
            tsi.BackColor = Color.Blue;
        }
    }
}

#4


刚试了一下是可以的。vs2012,你设置好属性后,运行还是不变吗?

#5


引用 4 楼 guwei4037 的回复:
刚试了一下是可以的。vs2012,你设置好属性后,运行还是不变吗?
不知道什么原因,我新建一个项目测试一下可以改变背景色,可是原来的项目怎么都改不了,运行之后也改不了,还是默认背景色。

#6


引用 3 楼 caozhy 的回复:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (ToolStripItem item in menuStrip1.Items)
            {
                EnumChildMenu(item);
            }
        }

        private void EnumChildMenu(ToolStripItem tsi)
        {
            OnFind(tsi);
            if (tsi is ToolStripMenuItem)
            {
                ToolStripMenuItem tsmi = tsi as ToolStripMenuItem;
                foreach (ToolStripItem item in tsmi.DropDownItems)
                {
                    EnumChildMenu(item);
                }
            }
        }

        private void OnFind(ToolStripItem tsi)
        {
            tsi.BackColor = Color.Blue;
        }
    }
}
我不是需要代码改背景色,而是设计界面改不了

#7


那就是你这个项目代码的问题了,肯定在某个地方设置了什么属性或写了什么代码,导致设置失效。你得好好查一查。

#8


引用 6 楼 junlinfushi 的回复:
Quote: 引用 3 楼 caozhy 的回复:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (ToolStripItem item in menuStrip1.Items)
            {
                EnumChildMenu(item);
            }
        }

        private void EnumChildMenu(ToolStripItem tsi)
        {
            OnFind(tsi);
            if (tsi is ToolStripMenuItem)
            {
                ToolStripMenuItem tsmi = tsi as ToolStripMenuItem;
                foreach (ToolStripItem item in tsmi.DropDownItems)
                {
                    EnumChildMenu(item);
                }
            }
        }

        private void OnFind(ToolStripItem tsi)
        {
            tsi.BackColor = Color.Blue;
        }
    }
}
我不是需要代码改背景色,而是设计界面改不了

反正我告诉你我测试了是可以修改的。

#9


引用 8 楼 caozhy 的回复:
Quote: 引用 6 楼 junlinfushi 的回复:

Quote: 引用 3 楼 caozhy 的回复:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (ToolStripItem item in menuStrip1.Items)
            {
                EnumChildMenu(item);
            }
        }

        private void EnumChildMenu(ToolStripItem tsi)
        {
            OnFind(tsi);
            if (tsi is ToolStripMenuItem)
            {
                ToolStripMenuItem tsmi = tsi as ToolStripMenuItem;
                foreach (ToolStripItem item in tsmi.DropDownItems)
                {
                    EnumChildMenu(item);
                }
            }
        }

        private void OnFind(ToolStripItem tsi)
        {
            tsi.BackColor = Color.Blue;
        }
    }
}
我不是需要代码改背景色,而是设计界面改不了

反正我告诉你我测试了是可以修改的。
我新建项目测试了也可以,就是当前项目改不了,不懂哪里出了问题。

#10


引用 7 楼 guwei4037 的回复:
那就是你这个项目代码的问题了,肯定在某个地方设置了什么属性或写了什么代码,导致设置失效。你得好好查一查。
这个我没设置什么属性,也没写特殊代码,不知道是不是VS2010的问题还是机器问题

#11


你找到如何解决的办法了吗?我也遇到了,不知道如何解决