我在窗體窗體上有一個組合框,並且我有一個方法與靜態一樣聲明爲private static DataTable ParseTable(HtmlNode table)
現在我想在該方法中使用組合框來使用組合框屬性,但是我不能訪問組合框或組合框本身的任何屬性。如果我將組合框聲明設置爲靜態,那麼可以在該靜態方法中訪問它。但是,在該靜態方法中訪問combbox屬性的任何其他方法,因爲我不想將組合框聲明作爲靜態的。在靜態方法中訪問非靜態combbox屬性
回答
您可以將combobox作爲參數傳遞給您的方法。爲什麼你需要有ParseTable
方法靜態?
更新:您不能在靜態上下文中訪問非靜態類的成員。所以如果你仍然需要一個靜態方法,你可以做的唯一的事情就是使用方法的參數將你的組合框傳遞給那個方法。
表單中沒有必要使用靜態ParseTable方法。如果您希望該功能與表單上的控件進行交互,請從該函數中移除靜態。
從閱讀評論,如果您只有一種形式,沒有性能改進。如果你有多個表單調用這個靜態方法,那麼ParseTable應該被移動到一個單獨的靜態類中。
如果您使用此ParseTable方法加載10個或更多組合框,那麼我建議您使用Anthony Pegram和Andrew Bezzub建議,並根據需要傳遞ComboBox控件。我會避免傳遞這個(表單),因爲它通常會產生「醜陋」的難以管理的代碼。
您可以通過將「this」傳遞給靜態方法並訪問通過「this」需要的任何成員來訪問組合框。
@Adrian Faciu,請簡要解釋.. – Harikrishna 2010-04-02 06:33:07
@Harikrishna,看看我的答案。除了不像我的例子那樣接收一個TextBox,你會收到一個表單類型的對象(Form1?)。然後可以使用「this」作爲參數來調用該函數。函數本身可以訪問參數的可訪問成員。 – 2010-04-02 06:43:31
@Harikrishna,安東尼是正確的,它會是相同的,但不是一個TextBox參數,你會有一個表單。如果您只需要textBox中的數據,您應該使用該數據,使用「this」您可以訪問表單的所有成員。 – 2010-04-02 07:12:58
您將不能簡單地從靜態函數訪問實例成員。獲得訪問權限的一種方法是可以將控件作爲參數傳遞給函數。考慮這個例子。
private void button1_Click(object sender, EventArgs e)
{
Form1.DoSomething(textBox1);
}
public static void DoSomething(TextBox textbox)
{
textbox.Text = DateTime.Now.ToString();
}
- 1. 通過靜態和非靜態方法訪問靜態屬性?
- 2. 如何在靜態方法中訪問父非靜態屬性,在PHP中?
- 3. 如何在靜態方法中訪問靜態和非靜態方法
- 4. 從PHP中的非靜態方法訪問不正確的靜態屬性
- 5. 靜態/非靜態方法問題
- 6. 靜態屬性調用WPF中的非靜態方法
- 7. 從C++中的靜態方法訪問非靜態類變量
- 8. 從靜態上下文中訪問非靜態方法
- 9. 訪問靜態屬性PARAMS
- 10. 靜態屬性引用非靜態方法
- 11. 訪問非靜態類的靜態類
- 12. 靜態和非靜態訪問值
- 13. 從靜態方法訪問非靜態成員變量
- 14. 爲什麼非靜態方法可以訪問靜態字段?
- 15. 從靜態方法訪問非靜態枚舉值
- 16. 無法在靜態環境中訪問非靜態字段「Repeater」
- 17. 無法在靜態環境中訪問非靜態字段'lblSystemStatus'
- 18. 訪問非靜態DAL方法
- 19. 在java中的靜態方法,我可以以非靜態方式訪問靜態方法嗎?
- 20. 非靜態方法問題
- 21. 在Sencha Touch中訪問靜態屬性
- 22. 當製備方法靜態 - 需要一個對象引用來訪問非靜態字段,訪問非靜態字段,方法或屬性是必需的
- 23. C#編譯器:無法在非靜態上下文中訪問靜態方法
- 24. 使用這個 - >語法在PHP訪問非靜態屬性
- 25. 泛型方法:靜態與非靜態
- 26. 靜態和非靜態方法工作
- 27. 靜態/非靜態方法參考
- 28. powermockito靜態和非靜態方法鏈
- 29. 不能使靜態方法非靜態
- 30. 非靜態方法說它的靜態?
@Andrew Bezzub,這個方法經常被調用,我想使應用程序的性能更好,所以我已經聲明方法是靜態的。 – Harikrishna 2010-04-02 06:34:17
@Harikrishna,我認爲這不是性能優化的正確場所。 – 2010-04-02 06:38:19
@Andrew Bezzub,可能有將近十個組合框,甚至沒有固定數量的可以在窗體上的組合框。 – Harikrishna 2010-04-02 06:43:26