专用方法问题c#(从工具栏菜单项更改颜色)

本文关键字:菜单项 颜色 工具栏 方法 问题 专用 | 更新日期: 2023-09-27 18:27:39

我在井字游戏中遇到了逻辑问题。我想添加一个新功能。当我点击菜单中的"黄色"时,当光标进入按钮时,我希望我的红十字变成黄色。

我从下面的方法中看不到变量"b",所以我想知道该怎么做。

private void yellowColorToolStripMenuItem_Click(object sender, EventArgs e)
{
    b.ForeColor= System.Drawing.Color.Yellow;
} //syntax error
private void button_enter(object sender, EventArgs e)
{
    Button b = (Button)sender;
    if (b.Enabled)
    {
        if (turn)
        {
            b.ForeColor = System.Drawing.Color.Red;
            b.Text = "X";
        }
        else
        {
            b.ForeColor = System.Drawing.Color.Blue;
            b.Text = "O";
        }
    }
}

我在网上找不到任何东西。

专用方法问题c#(从工具栏菜单项更改颜色)

您已经在button_enter方法中声明了一个局部变量。该变量在方法中仅可用。如果希望该变量成为实例开始的一部分,则需要使其成为实例变量,在任何方法外部声明。

然而,听起来你想要的真实状态并不是另一个按钮引用,而是"光标进入按钮时设置前景的颜色"。所以你可能有:

private Color entryColor;
private void yellowColorToolStripMenuItem_Click(object sender, EventArgs e)
{
    entryColor = Color.Yellow;
}
private void button_enter(object sender, EventArgs e)
{
    Button b = (Button) sender;
    if (b.Enabled)
    {
        if (turn)
        {
            b.ForeColor = entryColor;
            b.Text = "X";
        }
        else
        {
            b.ForeColor = Color.Blue;
            b.Text = "O";
        }
    }
}