我在运行时创建了一个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
事件。
有什么想法吗?
答案 0 :(得分:3)
您永远不应更改更新操作的可见性。而是使用:
this.SuspendLayout();
// Do all the resizing here.
this.ResumeLayout();
答案 1 :(得分:-1)
this.Visible
是服务器端调用,它阻止html控件和该控件的所有内容不会呈现给客户端。您可以尝试将样式更改为style="display:none;
,以便可以将“面板”内的任何内容重新传输到客户端。