2013-03-03 129 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,然后与您在那里通过的内容进行比较,尽管我没有看到这会有用。