面板的事件是否等同于表格事件? 我在一个永远不会关闭的表格中进行了几次面板切换。 但是,我无法找到任何接近表格中使用的事件的事件。 我关闭的是Paint事件。但是我只想在每次显示时更新面板。
答案 0 :(得分:0)
您可以收听VisibleChanged
事件,并仅在visibility = true时执行操作。
您还可以尝试Enter
和Invalidated
个事件,看看这些事件是否能为您提供所需的结果。
或者如果在离开时禁用面板是一个选项,您可以在工具箱中使用EnabledChanged
事件。
答案 1 :(得分:0)
Form.Shown
,而是Occurs whenever the form is first displayed。这就是说,没有Panel.Shown
事件,并且没有“每当首次显示面板时”引发的事件。
您可以使用Panel.Paint
事件模拟此行为,使用标记来跟踪之前是否“显示”过一次。这将使其行为类似于Form.Shown
。
private bool panel1Painted = false;
private void panel1_Paint(object sender, PaintEventArgs e)
{
if (!panel1Painted)
{
// do your shown stuff here
panel1Painted = true;
}
}
为了保持Form.Shown
的精神,如果面板重建,您可能需要重置标志。这与显示的不同。