[英]How to access form objects from another cs file in C#
在form.cs文件中,我有兩個按鈕,一個備忘錄和一個計時器。我的問題是:如何從另一個CS文件訪問計時器或備忘錄?
我試圖將對象公開,但沒有用,請給我一個資源或項目,這樣我就可以知道我在哪里弄錯了。
謝謝!
在設計器中選擇按鈕,轉到其屬性,然后將“修飾符”屬性從“私有”更改為“公共”。
然后,您可以從另一個類訪問它,如下所示:
public static class Test
{
public static void DisalbeMyButton()
{
var form = Form.ActiveForm as Form1;
if (form != null)
{
form.MyButton.Enabled = false;
}
}
}
注意:這僅是示例,絕對不是良好設計的模式:-)
在Program.cs中已經實例化了Form對象,但沒有引用。 通過簡單的編輯,您可以
Application.Run(new Form1());
至
Application.Run(formInstance = new Form1());
聲明像
public static Form1 formInstance;
和使用
Program.formInstance.MyFunction(params);
每當我聽到有人談論“另一個.cs文件”或“另一個.vb文件”時,我都會感到擔心。 它經常(盡管不總是)表明對編程(至少對OO編程)缺乏了解。 什么是在文件嗎? 一堂課 二?
您並不是要從另一個文件訪問這些東西,而是要嘗試從類的方法或可能是VB中的模塊的方法訪問它們。
問題的答案將取決於您嘗試從中訪問這些內容的類和方法的性質,以及您要訪問它們的原因。
一旦您對問題進行編輯以包括此信息,收到的答案可能會告訴您,除了表單類本身以外,您不應該在其他類中訪問表單的這些私有部分。
盡管我同意約翰·桑德斯的觀點,但假設您可以通過公共修飾符訪問所有內容,那么您可能做錯了一件事情,那就是您沒有該表單的實例。
例如,這是您要執行的操作:
Form1 myForm = new Form1;
string theButtonTextIAmLookingFor = myForm.MyButton.Text;
我假設您可能正在嘗試像靜態訪問它,如下所示:
string theButtonTextIAmLookingFor = Form1.MyButton.Text;
這只是您可能要檢查的內容。
直觀的選擇只是使控制字段公開。這是解決此問題的一個很好的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.