为了账号安全,请及时绑定邮箱和手机立即绑定

按下另一个按钮后如何使用按钮发送器?

按下另一个按钮后如何使用按钮发送器?

C#
吃鸡游戏 2022-10-23 15:39:43
所以我正在制作一个国际象棋游戏(棋盘是 64 个按钮,具有相同的发送者),我想要做的是在他按下第二个按钮后,如果移动是合法的,它将第一个按钮背景图像设置为 null,第二个按钮设置为首先:public void button_click(object sender, EventArgs e)    {        if (partOfTurn == false)        {            for (int x = 0; x <= 7; x++)            {                for (int y = 0; y <= 7; y++)                {                    if (Buttons[x, y] == ((Button)sender))                    {                        Ax = x;                        Ay = y;                    }                }            }            place_holder.BackgroundImage = ((Button)sender).BackgroundImage;            partOfTurn = true;        }        else if (partOfTurn == true)        {            for (int x = 0; x <= 7; x++)            {                for (int y = 0; y <= 7; y++)                {                    if (Buttons[x, y] == ((Button)sender))                    {                        Bx = x;                        By = y;                    }                }            }            click();            partOfTurn = false;        }        void click()        {            if (turn == true)            {                if (place_holder.BackgroundImage == Properties.Resources.White_Pown)                {                    if (Bx == Ax + 1 && By == Ay + 1 || Bx == Ax - 1 && By == Ay + 1)                    {            }但为了做到这一点,我需要使用第二个的(Button)sender 和第一个来清除它。我试图解决它并将背景按钮保存在占位符上,这样我就可以看到按下的按钮上的内容,但我仍然需要清除第一个按钮有任何想法吗?
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

要按顺序识别两个按钮,您需要将第一个按钮的引用存储为类级变量,例如previousButton。在点击代码的末尾指定它,以便您可以在下次点击时参考它。


public partial class Form1 : Form

{

    private Button previousButton = null;


    public Form1()

    {

        InitializeComponent();


        button1.Click += Buttons_Click;

        button2.Click += Buttons_Click;

    }


    private void Buttons_Click(object sender, EventArgs e)

    {

        if (previousButton != null)

        {

            // do something with previousButton

        }


        // code to work with the currently clicked button

        // as (Button)sender


        // remember the current button

        previousButton = (Button)sender;

    }

}

如果按钮序列总是成对发生,那么一旦成对序列完成,设置previousButton回null. 这告诉您将开始一个新的“序列”。


查看完整回答
反对 回复 2022-10-23
  • 1 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信