2010-11-04 27 views

回答

10

你需要讓你的控件公開,但是我不會那樣做。我寧願暴露我從我的控制中需要的東西。所以說,如果我需要訪問該文本在文本框中:

public class Form1 : Form 
{ 
    public string TextBoxText 
    { 
     get{return this.textBox1.Text;} 
     set{this.textBox1.Text = value;} 
    } 
} 
+0

你錯過了關閉財產和作爲nitpicky風格的警察的事情 - 「這個」是不必要的。否則一切看起來不錯,這比傳遞整個表單要好得多。 – hyprsleepy 2010-11-04 17:24:44

+1

固定。這就是你打字的代碼放到一個大屁股文本:)至於「這個」被使用,我們可以爭論有關永遠,但因爲我不前言我的成員變量用下劃線(我們可以爭論,以及)我喜歡用「this」來區分局部變量的成員。 – BFree 2010-11-04 17:29:03

+1

你如何在另一課上訪問這個內容?有人可以提供一個例子嗎? – n00b 2012-06-24 14:30:39

3

一種方法是形式傳遞到類像這樣:

class MyClass 
{ 
    public void ProcessForm(Form myForm) 
    { 
      myForm.....; // You can access it here 
    } 

} 

,揭露你想使控件您可以訪問他們,但真的是你應該只需要在全班傳,而不是整個窗體本身,

+0

這是行不通的。所有控件在默認情況下都是私有的,所以即使您傳遞了該表單,您也無法訪問其中的任何控件。 – BFree 2010-11-04 17:30:32

+0

@BFree Yep更新了答案 – w69rdy 2010-11-04 18:06:40

2

如果你通過表單類的參考,你應該能夠訪問你的表單的方法和屬性來自你的班級:

public class MyClass 
{ 
    private Form form; 

    public void GiveForm(Form form) 
    { 
     this.form = form; 
    } 
} 
0

你需要生成存根。

對於

在您的自定義類編寫構造

public YourClass(Main main) 
{ 
     // TODO: Complete member initialization 
     this.main = main; 
} 

然後在主類/窗體類,初始化類

YourClass yesMyClass = YourClass(this); 

如果你想在訪問窗體組件您的自定義類,然後,

this.main.label1.Text="I done that smartly' 
相關問題