簡體   English   中英

C#:在程序的“設置”對話框上按“確定”后,您在哪里調用自己的保存方法?

[英]C#: Where do you call your own save method after pressing OK on a Settings Dialog for your program?

當用戶完成編輯程序中“設置”對話框中的任何設置時,會在項目中將SaveSettings方法放在何處?

它應該在回報中如下:

        using (frmSettings frmSettings = new frmSettings())
        {
            if (frmSettings.ShowDialog() == DialogResult.OK)
            {
                // clicked OK, should I call SaveSettings() here? 

            }
            else
            {
                // clicked cancel.
            }
        }

或者我應該放在哪里?

在我看來,將保存代碼放在調用表單中會將其置於不正確的位置。 是的,它將在此實例中起作用,但這意味着設置表單不可重用,並且保存代碼中的任何錯誤都將導致設置表單在您知道任何錯誤之前卸除。

此外,如果添加新設置,則需要在兩個源位置進行更改,一次在設置表單中添加控件(並初始化它們),一次在調用表單中保存值。

我將代碼附加到“設置”表單的“確定”按鈕。 如果在保存中遇到任何錯誤,您可以在用戶的​​更改可見且可修復時通知用戶。 可以根據需要從不同位置調用表單,也可以移動ShowDialog()調用移動表單。 您應該使用DialogResult.OK的處理來更新調用表單,因為設置中的更改適用於它。

// clicked OK, should I call SaveSettings() here? 

這似乎是一個好地方。 =)

編輯:我想它取決於應用程序的框架,但把它放在那里沒有錯。 這是一個合乎邏輯的(通過邏輯的所有定義)放置它的地方。

這取決於表單設置正在做什么。 如果它只是讓用戶好,或取消

// clicked OK, should I call SaveSettings() here? 

是個好地方。

但是,如果您要在對話框表單上設置信息,那么我會將保存邏輯放在該表單中。

我絕對不認為將保存功能放在你建議的地方有任何邏輯上的錯誤。 或者,至少在某些情況下,我認為在“設置”表單中調用該函數來保存設置會更合適; 但這在很大程度上取決於應用程序的整體架構。

如果frmSettings表單具有您需要保存的設置,我會根據您的設計存儲該表單中的設置 - 以及隔離存儲或外部XML文件。

暫無
暫無

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

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