Application.OpenForms.Count 總是傳回零
在Windows 窗體應用程式中,存取Application.OpenForms 屬性通常用於取得集合屬性通常用於取得集合目前開啟的表格。但是,有一個已知錯誤可能會導致 Application.OpenForms.Count 屬性始終傳回零。
在建立表單後修改某些屬性時會出現此問題。這些屬性包括:
顯示圖示
呼叫CreateWindowEx()建立窗體視窗後,如果變更任何這些屬性,Windows 窗體必須銷毀原始視窗並使用更新的樣式標誌建立新視窗。但是,由於存在錯誤,Application 類別無法正確地將新表單新增至 OpenForms 集合中。這會導致 Application.OpenForms.Count 屬性始終傳回零。解決方案
要避免此錯誤,請始終僅在表單的建構子中。避免在呼叫 CreateWindowEx() 後執行的事件處理程序或其他程式碼中變更它們。Application.OpenForms 的替代品
一般來說,建議避免依賴由於此錯誤,在 Application.OpenForms 屬性上。相反,請考慮將表單實例傳遞給需要透過其建構函式顯示訊息框的類別。 MessageBox 通常會自動確定正確的父窗口,並在大多數情況下在活動窗口上顯示訊息框。以上是為什麼我的 Windows 窗體應用程式中的 Application.OpenForms.Count 總是回傳零?的詳細內容。更多資訊請關注PHP中文網其他相關文章!