2016-10-04 42 views
-2

當用戶單擊按鈕時,將值賦給變量'choice',並且我需要在另一個表單類中使用該變量值,但存儲的變量值isn 「T被解析到其它形式的類變量值不被解析爲另一個表單類c#

這裏是我的代碼: 形式1:

public partial class Main : Form 
{ 
    public string choice { get; set; } 
    string d1 = "something"; 

    private void btnD1_Click(object sender, EventArgs e) 
    { 
     choice = d1; 
     this.Hide(); 
     Form2 f = new Form2(); 
     f.Show(); 
    } 
} 

形式2:

public partial class Form2 : Form 
{ 
    private void Form2_Load(object sender, EventArgs e) 
    { 
     Main m = new Main(); 
     MessageBox.Show("You chose: " + m.choice + " before, now choose again!"); 
    } 
} 

我把消息在應用程序轉到下一個表格之前,它會顯示「something」,但是當消息框出現在新表單中時,它會顯示「您選擇了之前,現在再選擇一次!」 錯誤是什麼? 在此先感謝您的幫助

+0

向我們展示你如何設置'choice'的代碼。你應該首先顯示你的表單。 –

+3

當您執行新的Main()時,窗體的舊實例(您可能已在其中設置選項)消失。您需要以某種方式傳遞原始上下文或使該字段靜態。 –

+0

@OndrejSvejdar ...我不知道如何,但我做了我的變量靜態和它的工作吧!非常感謝你 – Jerome

回答

0

據我瞭解,如記錄hereMessageBoxShow方法返回的DialogResult一個實例,這是用戶的交互通信,以調用者的意圖的手段。

+0

我認爲他有更多的問題創建他的數據類的新實例,然後引用新實例,而不是他設置值的原始實例。雖然沒有看到更多他的代碼,但很難說。 – Adwaenyth

+2

這根本不回答問題。消息框沒有問題。它正確顯示,但只是內容不符合預期。 –

-1

使用靜態變量來存儲「選擇」可變數據.. MessageBox.Show(STATICCLS.Choice)

+1

您不應該用全球解決方案解決本地問題 –

相關問題