C#表单不会刷新
我的程序有问题(扫雷游戏) 这是我的板级(地雷板) 图片如下: 8x10 15地雷 5x5 5个地雷 当我设置地雷的数量是5,但它只显示3(1个z字母是1地雷)C#表单不会刷新,c#,winforms,C#,Winforms,我的程序有问题(扫雷游戏) 这是我的板级(地雷板) 图片如下: 8x10 15地雷 5x5 5个地雷 当我设置地雷的数量是5,但它只显示3(1个z字母是1地雷) 你能给我一些解决方案吗,非常感谢 我希望我没有误解这里的问题。但是GetRandomPoints方法不能保证向随机点列表中添加点。如果该点存在,则不会添加该点 我建议这样做: while(randomPoint.Count < numOfMines) { GetRandomPoints(maxrow, maxcol); }
你能给我一些解决方案吗,非常感谢 我希望我没有误解这里的问题。但是GetRandomPoints方法不能保证向随机点列表中添加点。如果该点存在,则不会添加该点 我建议这样做:
while(randomPoint.Count < numOfMines)
{ GetRandomPoints(maxrow, maxcol); }
while(randomPoint.Count
我希望我没有误解这里的问题。但是GetRandomPoints方法不能保证向随机点列表中添加点。如果该点存在,则不会添加该点
我建议这样做:
while(randomPoint.Count < numOfMines)
{ GetRandomPoints(maxrow, maxcol); }
while(randomPoint.Count
当您单击工具条菜单项时,您正在创建一个新板,这将导致旧按钮保留在窗体上(调整窗体大小以查看所有旧按钮)。你会注意到,地雷和以前放在同一个按钮上。这是由于旧按钮停留在新按钮之前造成的。因此,您需要在创建新板之前清除旧板。例如:
public void Clear(Form frm)
{
for (int i = 0; i < maxrow; ++i)
{
for (int j = 0; j < maxcol; ++j)
{
frm.Controls.Remove(MinesBoard[i, j].button);
}
}
}
一定要修复@AndersJH提到的错误:)当你点击工具栏菜单项时,你正在创建一个新的板,这将导致旧按钮留在表单上(调整表单大小以查看所有旧按钮)。你会注意到,地雷和以前放在同一个按钮上。这是由于旧按钮停留在新按钮之前造成的。因此,您需要在创建新板之前清除旧板。例如:
public void Clear(Form frm)
{
for (int i = 0; i < maxrow; ++i)
{
for (int j = 0; j < maxcol; ++j)
{
frm.Controls.Remove(MinesBoard[i, j].button);
}
}
}
一定要修复@AndersJH提到的错误:)你说的
它没有正确地改变是什么意思?看起来当大小改变时,“其余的”会被切断。当我将15个地雷改为5个地雷时,它只显示3个地雷(如图所示)@Matten:是的,这是我的序言@那么它应该显示什么呢?如果只显示左上角的5x5方块,这是唯一的东西。它没有正确更改是什么意思?
?当大小更改时,“其余”看起来会被切断。当我将15个地雷更改为5个地雷时,它只显示3个地雷(如图所示)@Matten:是的,这是我的序言@那么它应该显示什么呢?如果你只显示左上角的5x5正方形,那是唯一的东西。仍然没有变化,我认为问题出在DrawBoard函数中,但我找不到Till没有变化,我认为问题出在DrawBoard函数中,但我找不到
private void optionToolStripMenuItem_Click(object sender, EventArgs e)
{
if (board != null)
{
board.Clear(this);
}
board = new Board(5, 5, 5);
this.Size = new Size(board.Column * 25 + 5, board.Row * 25 + 88);
board.DrawBoard(this);
}