从另一个文件中的另一个类访问表单控件
本文关键字:另一个 访问表 表单 控件 访问 文件 | 更新日期: 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。