首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么IExtenderProvider属性在C#窗口中的设计器中丢失?

为什么IExtenderProvider属性在C#窗口中的设计器中丢失?
EN

Stack Overflow用户
提问于 2009-06-12 12:20:44
回答 3查看 1K关注 0票数 2

我已经为IExtenderProvider扩展程序创建了一个Controls.using (扩展程序),我正在迭代控件的集合并验证it.It works fine.but,有时在更改某些设计时,或者当设计人员刷新(同时从代码中删除一些事件)时,扩展程序提供的属性(在我的示例中是验证顺序和组)将从设计器中丢失,并且控件本身不会添加到扩展程序collection.so中,应用程序完成的验证会崩溃(当然,(应用程序本身).I在IExtenderProvider too.but中有ShouldSerialize和Reset方法,没有任何东西帮助me.Please指导我如何使所有控件在任何时候都对扩展程序可见。

谢谢你,玛蒂

EN

回答 3

Stack Overflow用户

发布于 2009-09-14 07:14:33

当扩展程序中有异常时,有时会发生这种情况。如果发生这种情况,则需要在设计时调试扩展程序。我今天不得不这样做好几次。看看调试设计-时间控制,它会让你开始的

其他情况下,这是因为您更改了扩展程序的属性和方法,并且“序列化”值不再合适。

票数 0
EN

Stack Overflow用户

发布于 2014-02-13 16:53:22

这篇由titled撰写的题为"使IExtenderProvider的代码生成与您的意愿一致“的文章可能有一个与您的问题相关的解决方案。它描述了为您的IExtenderProvider实现构建自定义序列化程序,这样做可以缓解这里提到的问题。

文章中的大部分相关信息也在堆栈溢出的另一个答案中被引用。

票数 0
EN

Stack Overflow用户

发布于 2018-02-15 08:16:15

下面的答案肯定是迟来的,但可能会对其他人有所帮助。

我也有同样的问题:财产要么丢失,要么根本没有出现。在我的例子中,问题在于,使用ProvideProperty、CanExtend以及SetXXX和GetXX方法指定的类型并不相同。例如,ProvideProperty和CanExtend将“Control”指定为类型,而SetXXX和GetXXX则将“object”指定为第一个参数。

因此,一旦我确定,对于--在ProvideProperty中指定的每个类型--我都有一个匹配的GetXXX和SetXXX,一切都如预期的那样正常工作。

也许这个有帮助。

注意:修复代码后,我必须重新启动Visual。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/986350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档