2013-03-03 126 views
2

我有一個FontDialog框,其名稱爲aFontDialog檢測用戶是否對FontDialog對象進行了更改

我可以檢測對此對話框所做的更改嗎?

最初我的對象創建使用此代碼aFontDialog.ShowDialog的對話框,比進行了更改,那麼用戶是否滿意自己更改的用戶,則應用程序將收到Windows.Forms.DialogResult.OK

enter image description here

是否有可能檢測用戶對此對話框所做的任何更改?我是否需要先記錄對話框不同方面的狀態,然後再比較它們之後的狀況 - 或者是否有一些屬性或方法內置於此對話框中,以幫助我找到任何更改?

+0

就我所知,您需要在狀態之前與狀態進行比較,這意味着FontDialog對象的屬性,例如(Color,Font ...)請參閱屬性@ [MSDN](http://msdn.microsoft.com/de-de/library/system.windows.forms.fontdialog.aspx) – Belial09 2013-03-07 21:20:41

回答

1

這裏最重要的問題是 - 爲什麼你需要知道變化。請參閱,字體通常不是交易對象,因此您通常不需要避免過多的網絡流量或最小化數據庫往返次數。

我只會看用戶是否按下確定。如果是,請設置新的字體,不管它與當前的字體有多相似。這只是一個代碼行 - 簡單的分配新字體舊:

Me.Font = MyFontDialog.Font 'Me could be any control in this case 

此外,我認爲這是你唯一的辦法,如果字體是不同的。這意味着你不能設置Font.Bold = True,因爲它是隻讀的。而且它也不需要很多處理時間,所以在優化它時沒有意義。

如果您確實想要,您可以在檢查DialogResult後確認FontDialog.Font,然後與您在那裏通過的內容進行比較,儘管我沒有看到這會有用。