我建立了两个窗体:form1和form2,在form1中实现了很多功能,我想在form2中也使用form1中的某些功能。但是我窗体继承了之后无法修改父窗体的属性(DX 的toolbar)。我把访问权限设置成了public也不行。在子窗体中能够访问到父窗体控件,但是不能修改属性,比如visible。
请问:上面说到的这种现象该如何解决?

解决方案 »

  1.   

    如果是在代码中修改,那么设置Modifier为Protected就行了,不要设置为Public。
      

  2.   

    这是可以实现的,代码如下:
    Form1://为Form1新建一个属性,在Form2中通过这个属性来改变
            //相应控件的属性 
            //当然也可以直接为某一个控件建立一个属性,作者自己实现吧
            public bool VisiableS
            {
                get
                {
                    return textBox1.Visible;
                }
                set
                {
                    textBox1.Visible = textBox1.Visible == true ? false : true;
                }
            }//由Form1跳入form2的代码
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 form2 = new Form2(button1.Text);
                form2.Owner = this;            form2.Show();
            } 
    Form2中的代码: //点击Form2中的按钮来改变Form1中的textbox的visiable属性
            //以测试过
            private void button1_Click(object sender, EventArgs e)
            {
                Form1 f = (Form1)this.Owner;
                f.TestS = "zheng";
                f.VisiableS = true;
                
            }
      

  3.   

    转到那个属性的定义里看看是否有set访问器,如果没有那么说明那个DXZ控件本来就被设计成只读的了
    你可以在父类中再另外定义一个属性形如protected XXX editable{get; set}