C#为同一方法分配几个按钮

时间:2017-05-29 16:04:12

标签: c# winrt-xaml controls

我正在尝试使用Win8 GUI构建一个简单的“HangMan”游戏。我在屏幕上构建了带有26个按钮的GUI,每个按钮代表字母表中的一个字母。

我想将所有按钮连接到相同的方法,该方法检查按下的按钮的值是否与所选单词中的一个字母匹配。我看过这个问题的答案应该对我有所帮助,但我认为我的一个不同之处在于我游戏中的所有逻辑和方法都在不同的类,即“游戏管理器”类。

How can I subscribe multiple buttons to the same event handler and act according to what button was clicked?

另外我没有放弃了解如何使用此解决方案我将分配所有按钮的方法将知道按下了哪个按钮。我希望我能够清楚地解释我的情况,如果不能,我可以提供部分代码以便更好地理解。

1 个答案:

答案 0 :(得分:0)

这是你想要的基本方法:

    static string key = "Level solution";
    char[] chars = key.ToCharArray();
    void check (object sender)
    {
        var button = sender as Button;
        character = Convert.ToChar(button.Text);
        int i = 0;
        foreach (char c in chars)
        {
            //checks every character to mark them
            if (c == character)
            {
                chars[i] = ' ';
                //Makes character unusable for later use

                //Anything you want now for true letters, for example showing pics or adding them to a label
            }
            i++;
        }
        //checks every character of key again, to see if player is won
        int count = 0;
        foreach (char c in chars) {
            if (c != ' ') count++;
            //Adds a number for anything expect space
        }

        if (count == 0)
        {
            MessageBox.Show("You won!");
        }

    }

您可以将其粘贴到代码之上,然后在任何按钮中使用此代码:

check(sender);