Winforms INotifyPropertyChanged在设计器生成的WinForm中用于检测修改的控件

Winforms INotifyPropertyChanged在设计器生成的WinForm中用于检测修改的控件,winforms,designer,inotifypropertychanged,windows-forms-designer,Winforms,Designer,Inotifypropertychanged,Windows Forms Designer,我试图实现一种检测用户何时修改表单的方法,并尝试使用INotifyPropertyChanged(INPC)接口来实现。但是,我正在使用Visual C#Express设计器来管理所有表单元素 我已经看过很多例子,说明如何通过在internet上创建自己的类及其成员字段和控件来使用INPC,但迄今为止,我从未见过INPC示例将此接口合并到.designer.cs(已生成)中允许检测设计器生成的控件何时被修改的控件 有这样的例子吗,或者这实际上是什么样子的?网上有这样的例子吗 :-(我已经为这个问

我试图实现一种检测用户何时修改表单的方法,并尝试使用INotifyPropertyChanged(INPC)接口来实现。但是,我正在使用Visual C#Express设计器来管理所有表单元素

我已经看过很多例子,说明如何通过在internet上创建自己的类及其成员字段和控件来使用INPC,但迄今为止,我从未见过INPC示例将此接口合并到.designer.cs(已生成)中允许检测设计器生成的控件何时被修改的控件

有这样的例子吗,或者这实际上是什么样子的?网上有这样的例子吗

:-(我已经为这个问题挣扎了一段时间。如果有人能帮我,那就太好了

附言。
我无法使用Control.Textchanged事件,因为Binding.Format()和Binding.Parse()当用户更改选项卡控件中的选项卡时发送误报。控件在SelectedIndexChanged期间处于选项卡控件中。

我可能错了,但我认为您需要通过IComponentChangeService让设计器知道更改。在自定义控件中,当发生更改时,您可以使用以下代码获得更改服务:

IComponentChangeService changeService = this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
然后你可以在上面调用
OnComponentChanged
,传递必要的信息。我认为如果你想让撤销正常工作,你也应该在更改发生之前调用
OnComponentChanged