2016-04-22 56 views
0

我試圖將標籤文本拖入同一解決方案中的另一個表單以在if語句中使用。但是,它似乎並沒有從現場提取數據。我試圖根據表單1中的標籤文本更改標籤背景的顏色。任何幫助都非常感謝。如何訪問一個表單中的數據並將其帶入另一個

形式1:

public void button1_Click(object sender, EventArgs e) 
{ 
    form1 view = new form(); 
    view.Show(); 
    view.label1 = label1.Text.ToString(); 
} 

表格2:

public string label1 { get; set; } 

public void Display() 
{ 
    if (label1 == "1") 
    { 
     for (int i = 0; i < nWinnings.Length; i++) 
     { 
      Label label = new Label(); 
      label.BackColor = Color.Red; 
      ... 
     } 
    } 
    else 
    { 
     for (int i = 0; i < nWinnings.Length; i++) 
     { 
      Label label = new Label(); 
      label.BackColor = Color.Blue; 
      ... 
     } 
     } 
} 

還有更多的標籤,但標籤是做工精細減去顏色變化。

回答

1

這是不正確的:

Label label = new Label(); 

不能創建Label實例......它絕對沒有在第一Form到原來Label實例連接,並在其上改變任何財產不會影響原來的一個。


你需要一個引用傳遞到整個Label

// Form 1 

public void button1_Click(object sender, EventArgs e) 
{ 
    form1 view = new form(); 
    view.label1 = label1; 
    view.Show(); 
} 

// Form 2 

public Label label1 { get; set; } 

public void Display() 
{ 
    if (label1.Text == "1") 
    { 
     for (int i = 0; i < nWinnings.Length; i++) 
     { 
      label1.BackColor = Color.Red; 

      // ... etc, etc 

我會限制你多少繞過對照引用做其他形式。根據我的經驗,當你這麼做的時候,代碼會變得很渾濁。

+0

謝謝你的解釋@Grant Winney。我試過這個改變,我得到一個「NullReferenceException未處理」。 – Jret

+0

在哪一行?你確定你正確地將參考傳遞給標籤嗎? –

+0

在if語句中。我相信如此,雖然我對C#很陌生,可能錯過了一些基本的東西。 – Jret

0

如果我的理解是正確的,你有兩種形式。 FORM1 & FORM2。 FORM1中有一個標籤控件LABEL1。您閱讀此文本並將其傳遞給FORM2。

在FORM2中,您有另一個標籤控件LABEL2,其背景顏色要更改。

您可以在FORM2中聲明一個字符串變量。 向FORM2添加新的構造函數以接受字符串參數,並將此值設置爲字符串變量。 在FORM2 OnLoad中,您可以檢查字符串變量的值,然後在012 -之後,在if-else循環中LABEL2.BackColor = whateverColor。

像這樣在Form1

FORM2 newForm = new FORM2(LABEL1.Text); 
newForm.Show(); 

和FORM2

private label1String = String.Empty(); 

public FORM2(string arg) 
{ 
    ...Default Initialization Code... 
    label1String = arg; 
} 

private void ChangeLabel2Color() 
{ 
    if(label1String == "1") 
    { 
     LABEL2.BackColor = whateverColorYouNeed; 
    } 
    else 
    { 
     ...WHATEVER YOU NEED TO DO... 
    } 
} 

我直接寫的代碼,所以可能有語法錯誤。

相關問題