找回密码
 立即注册

QQ登录

只需一步,快速开始

jxfun

银牌会员

5

主题

9

帖子

2693

积分

银牌会员

积分
2693

活字格认证

jxfun
银牌会员   /  发表于:2014-7-27 23:11  /   查看:6148  /  回复:1
下载最新试用版本,安装在vs2010上。
系统中引用了c1MainMenu.4与C1FlexGrid.4 两个控件,放在一个ModuleBase.cs的用户控件中。另个一个用户控件myUserControl.cs继承了ModuleBase,可在myUserControl.cs对C1FlexGrid任何修改都报'System.ComponentModel.Component 未标记为可序列化"错误,而在基类ModuleBase中编辑控件则没有问题,难道C1控件不支持放在基类中被继承?谢谢!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

1 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-7-28 10:05:00
沙发
回复 1楼jxfun的帖子

根据微软的设计,在创建用户控件时,系统会提供一个可视设计器,您可以将标准 Windows 窗体控件置于该可视设计器中。这些控件保留了其所有固有功能以及标准控件的外观和感观,但是一旦将它们置于用户控件后,开发人员就不能通过代码使用它们。用户控件执行其自身的绘图工作,同时也处理与控件相关联的所有基本功能。
如果要使开发人员得以访问构成控件,则必须将它们声明为公共的,或有选择地公开其属性。组成用户控件的控件称为“构成控件”。这些控件通常被声明为私有的,因此开发人员不能访问它们。如果想要使将来的用户可以使用这些控件的属性,则必须将它们公开给用户。通过创建用户控件中的属性并使用该属性的 Get 和 Set 访问器影响构成控件的私有属性的变化,就可以使构成控件的属性得以公开。

考虑一个假想的包含名为 MyButton 的构成按钮的用户控件。在此例中,当用户请求 ConstituentButtonBackColor 属性时,存储在 MyButton 的 BackColor 属性中的值被传递。当用户为此属性赋值时,该值将自动传递给 MyButton 的 BackColor 属性,同时 Set 代码将执行,使 MyButton 的颜色改变。
面的示例显示了如何公开构成按钮的 BackColor 属性:
  1. ' Visual Basic
  2. Public Property ButtonColor() as System.Drawing.Color
  3.    Get
  4.       Return MyButton.BackColor
  5.    End Get
  6.    Set(Value as System.Drawing.Color)
  7.       MyButton.BackColor = Value
  8.    End Set
  9. End Property

  10. // C#
  11. public Color ButtonColor
  12. {
  13.    get
  14.    {
  15.       return(myButton.BackColor);
  16.    }
  17.    set
  18.    {
  19.       myButton.BackColor = value;
  20.    }
  21. }
复制代码

因为默认是私有的,所以你才不能使用,不仅FlexGrid是这样,所有的微软标准控件都是如此。你需要将你希望改写的控件设为公有的Public的。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部