我正在构建一个“连续4个”游戏,用户可以提示选择行数和列数。使用所选择的用户参数,我通过以下方式分配空间: 'm_PictureBoxsMatrix = new PictureBox [NumberOfRows,NumberOfColumns]' 但在游戏过程中,玩家可以将游戏属性更改为新的棋盘大小,即新的NumberOfRows和新的NumberOfColumns。 因此,在玩家更改电路板尺寸后,我需要重新分配空间。 我是对的吗?
问题出在我重新分配空间之后 'm_PictureBoxsMatrix =具有新更改参数的新PictureBox [NumberOfRows,NumberOfColumns]'。实际的用户界面板不会改变。 请注意'm_PictureBoxsMatrix = new PictureBox [NumberOfRows,NumberOfColumns]'位于UI端,应相应更改
答案 0 :(得分:1)
由于您使用多个控件,因此确实需要重新创建控件。创建新数组将有助于您的代码,但不会更改表单的Controls
集合中的 控件。最简单的过程是重新创建表单完全,否则清空控件(记住每个Dispose()
),并从头开始重新创建,将每个PictureBox
添加到两个数组(m_PictureBoxsMatrix
)和UI .Controls.Add(...)
)。