2

我正在Panels运行时创建一个网格,由于是由循环创建的,因此在调整大小时它非常难看。为了“隐藏”这个操作,我打电话给

this.Visible = false;

在我的循环之前和

this.Visible = true;

在我的循环之后。

 for (int i = 0; i < Size; i++)
        {
            for (int j = 0; j < Size; j++)
            {
                _panel = new Panel();
                _panel.Location = new Point((i * _panel.Size.Width) + ((i + 1) * _border), (j * _panel.Size.Height) + ((j + 1) * _border));                    
                this.Controls.Add(_panel);
            }
        }

上面的代码工作得很好,但它只能工作一次。在我切换表单的可见性后,KeyDown按下一个键就不会再发生该事件。

有任何想法吗?

4

2 回答 2

3

您永远不应更改更新操作的可见性。而是使用:

this.SuspendLayout();

// Do all the resizing here.

this.ResumeLayout();
于 2011-04-15T20:02:59.197 回答
-1

this.Visible是一个服务器端调用,它防止 html 控件和该控件的所有内容不呈现给客户端。您可以尝试将样式更改为,style="display:none;以便“面板”内的任何内容都可以重新流式传输到客户端。

于 2011-04-15T20:01:17.893 回答