簡體   English   中英

如何在新課程中使用Form1 dsigner中的標簽?

[英]How do i use labels that are in Form1 dsigner at the new class?

例如在我的新課上,我有這個:

if ((connectionStart[f] == i && connectionEnd[f] == j) || (connectionStart[f] == j && connectionEnd[f] == i)) // this checking dosent work good !
                {
                    //button2.Enabled = false;
                    return;
                }
                else
                {
                    /*label12.Text = connectionStart[f].ToString();
                    label11.Text = connectionEnd[f].ToString();
                    label9.Visible = true;
                    label10.Visible = true;
                    label11.Visible = true;
                    label12.Visible = true;*/
                } 

暫時用/ *和* /標記它們

但是我如何也可以使用它們button2以便它在運行程序時生效?

我不能在Form1中將按鈕或標簽設為靜態,因為它們在設計器中,並且我不想使用靜態。

而且我不想創建Form1實例。

我還想為所有標簽,按鈕和其他對象(例如該類中的某些函數)構建對象,以便我可以輕松使用它們,以便它們在運行程序時生效。

目前,它們還不存在於新的類中。

**也許要在Form1中為所有這些對象創建一個屬性,以便我可以在新的Class中輕松使用它們? **

首先,將這些控件放在已經實例化的某種形式上。 因此,您需要在新類(ctor,屬性,方法等)中為其提供實例。

然后,在表單類中,您需要通過公共屬性或方法打開對控件實例的訪問權限(因為它們是私有的或默認情況下受保護的)。

然后,您可以訪問類中的控件,例如:

public class MySecondClass {

    private MainForm mainForm;

    public MySecondClass(MainForm mainForm) 
    {
        this.mainForm = mainForm; 
    }

    public void SomeFinctionOfNewClass()
    {
        this.mainForm.Label10.Text = "Some text for label"; // it's using property
    }
}

作為選項2,您可以在新類中創建一個事件,然后在可以訪問控件的表單類中訂閱該事件。 然后,可以使用事件參數將控件的設置提供給even處理程序。 在這種情況下,您將無法從窗體類之外的任何其他位置打開對控件的訪問。

暫無
暫無

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

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