簡體   English   中英

C#Winform面板顯示事件

[英]C# Winform panel Shown event

面板是否有一個與顯示的表單事件等效的事件? 我在一個永遠不會關閉的表單中進行了幾個面板切換。 但是我找不到任何形式類似於Shown的事件。 我的比賽結束是Paint事件。 但是我只希望在每次顯示時更新一次面板。

您可以偵聽VisibleChanged事件,並且僅在可見性= true時采取行動。

https://msdn.microsoft.com/en-us/library/system.windows.forms.panel_events%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

您還可以嘗試使用EnterInvalidated事件查看它們是否為您提供所需的結果。

或者,如果可以選擇在離開時禁用面板,則可以在工具箱中使用EnabledChanged事件。

Form.Shown不會在每次顯示表單時引發,而是在第一次顯示表單發生 Panel.Shown ,沒有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的精神,如果重建面板,您可能需要重設標志。 這與所示的不同

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM