私有方法问题c#(从工具条菜单项更改颜色)

时间:2014-10-24 13:51:00

标签: c# methods private

我对tic tac toe游戏有一个逻辑问题。 我想添加一个新功能。 当我点击"黄色"在菜单中,当光标进入按钮时,我希望红十字会变黄。

我无法看到变量" 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";
        }
    }
}

我在网上找不到任何东西

1 个答案:

答案 0 :(得分:3)

您已在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";
        }
    }
}