簡體   English   中英

從另一個文件中的另一個類訪問表單控件

[英]Access form control from another class in another file

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

在我的A.cs文件中,它屬於公共類A。我想利用公共類B中的控件(網格視圖),該類位於B.designer.cs中。 是否可以在不繼承A中的B類的情況下做到這一點?

我知道我可能需要一個屬性,並在類B中創建類A的新實例。到目前為止,這是我所擁有的。

這是在B.cs中。 我不確定在哪里/如何做財產。

這就是我定義gridview的方式:
公共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";
}

在這段代碼中

首先,您要創建一個新的A實例,稱為“ gridview”,然后使用

A.gridview =“你好”

嘗試訪問應該實際上是

gridview.gridview =“你好”;

其次,通過創建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中的“ gridview”將是您要更新的那個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM