我的按钮文字不想在C#

时间:2015-05-08 16:21:06

标签: c#

你好其他程序员。

我在我们大学忙于AI项目。该项目是关于为15个益智游戏编写AI。该程序必须解决难题,但它需要显示计算机的步骤。我的代码工作,我的谜题解决,但由于某种原因,我的文本不会更新表单本身。我无法理解为什么我的文本不会更新,因为我的代码应该自动执行。这是我的最后一个错误,如果我可以修复它,那么我的项目就完成了。

以下是我的按钮文字更新的代码

private void setButtText()
        {
            Button[,] temp = new Button[4, 4];
            temp = (Button[,])buttOpen[0];
            for (int i = 0; i <= 3; i++)
                for (int j = 0; j <= 3; j++)
                    butt[i, j] = temp[i, j];               

        }

变量butt是一个二维数组,其地址设置为我表单上的每个按钮,例如:

butt[0,0] = button1;
butt[0,1] = button2;
...
...
butt[3,3] = button16;

buttOpen是一个arrayList,它保存计算机可以采取的每个可能移动的按钮组,位置0表示计算机可以采取的最佳移动。

此外,我意识到,如果我设置butt[i,j].Text = temp[i,j].Text,temp中的文本会以某种方式更改,但按钮会在我的表单上开始更新。我无法理解它是如何可能的,因为我没有更改temp的文字,如果temp中的文字改变了我的程序崩溃。如果您对可能存在的问题有任何疑问,请显示我的错误。

感谢您的时间。

弗朗索瓦

1 个答案:

答案 0 :(得分:2)

butt[i, j] = temp[i, j]; 

这不会设置Button1 = temp [x];它会覆盖存储在你的枪托中的参考。

butt[i,j].Text = temp[i,j].Text; 从您的对接阵列获取该位置的按钮并设置其文字,因为您已经设置这些按钮是表单上的按钮,用于更新文本。

大概你更新了buttOpen数组中的文本?因为那是你设定的温度。

请注意以下几行:

        Button[,] temp = new Button[4, 4];
        temp = (Button[,])buttOpen[0];

可以压缩成

Button[,] temp = (Button[,])buttOpen[0];

您实际上并未使用新创建的按钮阵列。它崩溃的错误可能与你如何设置buttOpen

有关