C# 多按钮后退图像更改的单一方法?

C# 多按钮后退图像更改的单一方法?,c#,button,background,C#,Button,Background,我是新来的。如果你能帮我写一个方法,可以改变点击按钮的背景图像,我会很高兴 这就是我现在正在做的。正如你所看到的,我正在为每个按钮做这件事。我很想知道是否有一种方法可以让按钮直接调用 这是一个简单的井字游戏多人游戏 private void cell23_Click(object sender, EventArgs e) { if (gameGrid[1, 2] == "n") { if (currentPlay

我是新来的。如果你能帮我写一个方法,可以改变点击按钮的背景图像,我会很高兴

这就是我现在正在做的。正如你所看到的,我正在为每个按钮做这件事。我很想知道是否有一种方法可以让按钮直接调用

这是一个简单的井字游戏多人游戏

private void cell23_Click(object sender, EventArgs e)
    {
        if (gameGrid[1, 2] == "n")
        {
            if (currentPlayer == "x")
            {
                this.cell23.BackgroundImage = ((System.Drawing.Image)(Properties.Resources.cross));
                currentPlayer = "o";
                gameGrid[1, 2] = "x";
                cell23.Enabled = false;
            }
            else if (currentPlayer == "o")
            {
                this.cell23.BackgroundImage = ((System.Drawing.Image)(Properties.Resources.nought));
                currentPlayer = "x";
                gameGrid[1, 2] = "o";
                cell23.Enabled = false;
            }

        }
编辑:


现在我有了这个方法。当我按下带有标记单元格11的按钮以获取此处的代码时,我该如何做?

使用
sender
参数,该参数(通常)设置为引发事件的对象

private void AnyCell_Click(object sender, EventArgs e)
{
    var clickedCell = sender as Control; //Or whatever type it is

    if (gameGrid[1, 2] == "n")
    {
        if (currentPlayer == "x")
        {
            clickedCell.BackgroundImage = ((System.Drawing.Image)(Properties.Resources.cross));
            currentPlayer = "o";
            gameGrid[1, 2] = "x";
            clickedCell.Enabled = false;
        }
        else if (currentPlayer == "o")
        {
            clickedCell.BackgroundImage = ((System.Drawing.Image)(Properties.Resources.nought));
            currentPlayer = "x";
            gameGrid[1, 2] = "o";
            clickedCell.Enabled = false;
        }
    }

什么类型是
cell23
?我认为单击的单元格实例在sender参数中。所有单元格$$都是按钮如果这是您要求的,我尝试在按钮中调用该方法,它给出这样的结果:没有给出与所需的形式参数“sender”相对应的参数。它是单击处理程序。你不叫它。将其注册为事件处理程序。如果您试图从事件处理程序调用它,只需传递参数即可。我已编辑了我的问题,请您审阅一下。
private void AnyCell_Click(object sender, EventArgs e)
{
    var clickedCell = sender as Control; //Or whatever type it is

    if (gameGrid[1, 2] == "n")
    {
        if (currentPlayer == "x")
        {
            clickedCell.BackgroundImage = ((System.Drawing.Image)(Properties.Resources.cross));
            currentPlayer = "o";
            gameGrid[1, 2] = "x";
            clickedCell.Enabled = false;
        }
        else if (currentPlayer == "o")
        {
            clickedCell.BackgroundImage = ((System.Drawing.Image)(Properties.Resources.nought));
            currentPlayer = "x";
            gameGrid[1, 2] = "o";
            clickedCell.Enabled = false;
        }
    }