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

本文关键字:另一个 访问表 表单 控件 访问 文件 | 更新日期: 2023-09-27 18:32:29

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

在我的 A.cs 文件中,它是公共类 A。我想在公共类 B 中使用控件(网格视图),该控件位于 B.designer.cs 中。是否可以在不继承 A 中的 B 类的情况下做到这一点?

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

这是在 B.cs。我不确定在哪里/如何做这个财产。

这就是我定义网格视图的方式:
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";
}

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

在类 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());
private void treeView_NodeMouseClick(object sender, System.EventArgs e)
{
    A gridview = new A();
    A.gridview = "hello";
}

在代码的这一部分中,

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

A.网格视图 = "你好"

尝试访问实际上应该是

网格视图

.网格视图 = "hello";

其次,通过创建一个新的 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 的引用,因此 A 中的"网格视图"将是您要更新的 A。