我正在编写一个小数独游戏。我有一个2d阵列和许多显示数字的按钮。当我点击其中一个按钮( sudokuBoxClicked )时,我从其名称中获取按钮的x和y位置。这适用于现在。在函数结束时,将打开函数 changeNumberinSudoku 。此函数首先将数组条目更改为我想要的那个button.text上的数字,然后它将更改button.text,使其不再 null 但具有变量的changenumber
由于我的数独有81个按钮,程序不知道它应该改变什么button.text。所以它应该改变触发 sudokuBoxClicked -function的按钮的text-property。我现在的问题基本上是:
如何将对象发件人送到第二个函数,以便我可以更改其属性?
为了让您更好地了解我的需求,以下是重要的代码:
int changeNumber = 1;
int[,] sudokuMap = new int[9,9];
private void sudokuBoxClicked(object sender, EventArgs e)
{
string nameOfClickedBox = (sender as Button).Name;
int xPositionOfClickedButton = Convert.ToInt32(nameOfClickedBox.Substring(7, 1));
int yPositionOfClickedButton = Convert.ToInt32(nameOfClickedBox.Substring(9, 1));
//The array-position of the clicked box, is contained in its name.
changeNumberinSudoku(xPositionOfClickedButton, yPositionOfClickedButton);
}
private void changeNumberinSudoku(int xPos, int yPos)
{
sudokuMap[xPos, yPos] = changeNumber;
}
感谢所有能帮助我的好人。
-AlexanderLe
答案 0 :(得分:1)
将发件人作为参数传递给第二个函数:
changeNumberinSudoku(xPositionOfClickedButton, yPositionOfClickedButton, (sender as Button));
并更改您的功能签名:
private void changeNumberinSudoku(int xPos, int yPos, Button btn)
{
sudokuMap[xPos, yPos] = changeNumber;
btn.Text = ...
}