从部分类中调用公共属性

时间:2017-03-07 13:50:51

标签: c# winforms

我在部分类(UserControl)中有一个公共属性,我想从另一个部分类(Form)访问它。但是我不能称这个属性,即使它是公开的。它们位于相同的namespace,因此不应该是问题。

部分班级#1(用户控制)

public partial class MyUserControl : UserControl
{
    // This is the value I want to read from the main form
    public String MyVariableValue
    {
        get { return cboMyComboBox.Text; }
    }
}

部分班级#2(主要表格)

public partial class MyForm : Form
{
    // This function should show a message box with the value
    private void ShowMyVariable()
    {
        MessageBox.Show("You have selected: " + MyUserControl.MyVariableValue);
    }
}

错误代码:

  

CS0119' MyForm'是一种类型,在给定的上下文中无效

更新:我在原始代码中遇到了很多错误,这些错误已得到纠正。它是两种不同的形式,之前不清楚,抱歉......

2 个答案:

答案 0 :(得分:2)

更改帖子后,我建议如下: 我假设MyForm有一个MyUserControl的实例,这是显示usercontrol所必需的。然后,您访问该实例 变化

MessageBox.Show("You have selected: " + MyForm.MyVariableValue);

MessageBox.Show("You have selected: " + _myUserControl.MyVariableValue);

其中_myUserControl是MyUserControl类型的实例变量的名称。 它可能出现在MyForm类的其他部分,即自动生成的部分,看起来像这样:

MyUserControl _myUserControl = new MyUserControl();
this.Controls.Add(_myUserControl);

答案 1 :(得分:0)

访问此修饰符

 private void ShowMyVariable()
    {
        MessageBox.Show("You have selected: " + this.MyVariableValue);
    }