从另一个文件中的另一个类访问表单控件

时间:2016-01-28 19:16:39

标签: c# oop methods properties

我有2个.cs文件(A,B)。

在我的A.cs文件中,它是公共类A.我想在公共类B中使用控件(gridview),它位于B.designer.cs中。如果不继承A中的B类,是否可以这样做?

我知道我可能需要一个属性并在B类中创建一个新的A类实例。这就是我到目前为止所做的。

这是在B.cs.我不知道在哪里/如何做财产。

这是我定义gridview的方式:
     public DevExpress.XtraGrid.Views.Grid.GridView gridView

这就是我在其中写文字的方式:this.gridView1.OptionsFind.FindNullPrompt =“hello”

private void treeView_NodeMouseClick(object sender, System.EventArgs e)
{
    A gridview = new A();
    A.gridview = "hello";
}

2 个答案:

答案 0 :(得分:0)

你的班级B需要一个A的实例。

你可以这样:

public class B
{
    private A theA;
    public B(A theA)
    {
        this.theA = theA;
    }

    private void treeView_NodeMouseClick(object sender, System.EventArgs e)
    {
        theA.textbox = "hello";
    }
}

现在,当您创建B类实例时,就像这样编写它。

B b = new b(new A());

答案 1 :(得分:0)

private void treeView_NodeMouseClick(object sender, System.EventArgs e)
{
    A gridview = new A();
    A.gridview = "hello";
}

在代码的这一部分中,

首先,您要创建一个名为" gridview"的新实例,但随后使用

  

A.gridview ="你好"

尝试访问实际上应该

的gridview
  

gridview.gridview ="你好&#34 ;;

其次,通过创建A的新实例并更改其字段的值" gridview"(我认为它可能是根据您的代码的文本框),它将不会对其产生任何影响界面,因为这不是你想要引用的A.

相反,它应该是: 在B类中,类似于

Public void UpdateAGridview(A yourA)
{
    yourA.gridview = "hello";
    //side note: setting a string value to a gridview, is this correct?
}

在这里,您可以获得对要与之互动的A的引用,因此" gridview"在A中将是您要更新的那个。