我有一个窗体BaseForm,我给他加了一个属性:RuleName另外一个窗体ChildForm继承了该窗体,我希望在ChildForm的属性窗口中能够看见该
RuleName属性,并且可以进行设置,我应该怎么做,希望给出详细实例,谢谢!

解决方案 »

  1.   

    父窗口中定义即可:
     protected string _ruleName;
     public string RuleName
    {
      get { return _ruleName; }
      set { _ruleName= value; }
    }
      

  2.   


     privatestring _ruleName;
     [Description("获取或设置返回的文本"), DefaultValue(""), Browsable(true)]
     public string RuleName
     {
      get { return _ruleName; }
      set { _ruleName= value; }
     }
      

  3.   

    private string _ruleName;
     [Description("获取或设置返回的文本"), DefaultValue(""), Browsable(true)]
     public string RuleName
     {
      get { return _ruleName; }
      set { _ruleName= value; }
     }
      

  4.   

    还要加上XML注释,才完善.写代码时,敲这个属性还能看到注释private string _ruleName;
     
    /// <summary>
    /// 自定义属性RuleName:获取或设置返回的文本
    /// </summary>
    [Description("获取或设置返回的文本"), DefaultValue(""), Browsable(true)]
    public string RuleName
    {
      get { return _ruleName; }
      set { _ruleName= value; }
    }
      

  5.   

    窗体BaseForm:
    /// <summary>
            /// 登录的用户名
            /// </summary>
            private static string UserName;
            public string MainUserName
            {
                set
                {
                    UserName = value;
                }
                get
                {
                    return UserName;
                }
            }
    窗体ChildForm:
               BaseForm main = new BaseForm();
                   main.MainUserName = "";
      

  6.   

    namespace MTFramework.Base.UI.WinForm
    {
        public partial class AuthorizableForm : BaseForm 
        {
            
            public AuthorizableForm()
            {
                InitializeComponent();
            }        public AuthorizableForm(string ruleName) 
                :this()
            {
                this.ruleName = ruleName;
            }        private string ruleName;
            [Browsable(true)]
            [Description("The form's rule which define by MTFramework.Base.Security.AuthorizationDefineForm")]
            public string RuleName 
            {
                get { return this.ruleName; }
                set { this.ruleName = value; }
            }        private void AuthorizableForm_Load(object sender, EventArgs e)
            {
                foreach (Control control in this.Controls)
                {
                    if (control is IAuthorizableControl)
                    {
                        ((IAuthorizableControl)control).Authorize(MTFrameworkGlobalVariables.Instance.CurrentPrincipal);
                    }
                }
            }
        }
    }
    我是这样写的,但是在继承窗体的属性窗体中看不见该属性啊?
      

  7.   

    大家请在集成环境中验证一下,成功了再发贴,OK?,如果没有验证过的请加上未经测试,OK?