2013-09-05 65 views
0

我有一個C#WinForms應用程序,我使用的主要形式,以控制對方這樣說:不能訪問任何價值上我的形式

public Rel_Entitys RelForm1; 
public Struct_Inc StructForm1; 
public DataLoad DataLoadForm1; 
public Asset_Inc AssetForm1; 
public Estimates_Inc EstimatesForm1; 
public Options OptionsForm1; 

private void Form1_Load(object sender, EventArgs e) 
{ 
    RelForm1 = new Rel_Entitys(); 
    StructForm1 = new Struct_Inc(); 
    DataLoadForm1 = new DataLoad(); 
    AssetForm1 = new Asset_Inc(); 
    OptionsForm1 = new Options(); 
    EstimatesForm1 = new Estimates_Inc(); 
} 

然後我訪問他們這樣說:

private void barButtonItem6_ItemClick(
       object sender, DevExpress.XtraBars.ItemClickEventArgs e) 
{ 
    StructForm1.Show(); 
    this.Hide(); 
} 

工作正常,我從數據庫加載數據到這種形式,但當我試圖從任何領域獲得任何價值,他們爲空/空。我已經嘗試使用this.StructForm1.txt1.Text但沒有任何回報。我究竟做錯了什麼?我使用這個表單聲明變得更容易處理表單並調用你的方法,但我不確定這是否正確。

[更新]

我開始認爲這與我的方法有關。如果設置上的Form_Load字段的值,然後從方法

public void SaveEstimate() {...} 

這又是空的得到它。有任何想法嗎?

+0

你試過把它應用到任何東西嗎?或者,這是字面上你使用的代碼行? – Paddyd

+0

您是否在表單關閉後嘗試檢索值? – AgentFire

+3

請在代碼中顯示您嘗試獲取字段值的位置。 – mbeckish

回答

0

看起來您正在創建多個表單實例。只是一個快速檢查。將這些字段設置爲靜態,然後查看這些字段是否仍爲空(空)。

public static Rel_Entitys RelForm1; 
public static Struct_Inc StructForm1; 
public static DataLoad DataLoadForm1; 
public static Asset_Inc AssetForm1; 
public static Estimates_Inc EstimatesForm1; 
public static Options OptionsForm1; 
+0

經過測試。還是行不通。無論如何Irfan。 –

+0

@TulioVS然後仔細檢查是否甚至調用了form_load。把一個斷點:-) – Irfan

+0

和以前一樣。該實例通常在form_load上發生。 –

0

請確保您撥打txt1的文本框是Public。

選擇您的文本框,轉到屬性窗口,找到修改器並將其設置爲公共。

+0

即使修飾符爲Public,值也爲空。 –