2014-09-11 109 views
0

我有一個Form1 with MenuItem'Customize'。點擊定製後,我打開「Form2」。在Form2上,用戶從ColorDialog中選擇兩種顏色。 Form2有'應用'按鈕。我想單擊「應用」按鈕,Form2應該關閉(或隱藏),所選顏色應作爲Form1的背景顏色應用(繪製)。我該怎麼做呢?如何將選定的顏色從form2發送到form1

回答

0

在表格2,你需要有一個你可以訪問檢索顏色

public Color FirstColor {get; private set;} 
public Color SecondColor {get; private set;} 

然後打開這個表,您應該遵循以下使用的東西兩個屬性。

using(var myForm = new Form2()) 
{ 
    myForm.ShowDialog(); 
    //if(myForm.ShowDialog() == DialogResult.OK) 
     this.BackColor = myForm.FirstColor; 
} 

的註釋行是如果你有一個確定/取消您的對話框上的按鈕,你可以介紹的,而不是它上面的線可選的事。要關閉表,您應該設置形式DialogResult適當

+0

謝謝!這工作! – jrk007 2014-09-11 06:55:25

1

您做出公開法「selectcolor()」在Form1,關閉所有形式,打開一個新的Form1並使用selectcolor()來挑顏色

+0

我不想選擇顏色在form1中。我想在form2中選擇顏色並將其應用於form1。 – jrk007 2014-09-11 06:41:32

0

當您單擊該按鈕以打開的形式2做像這樣:

Form2 f = new Form2(); 
f.ShowDialog(); 
var returnedColor = f.SelectedColor; 

這將interupt在Form1的代碼,所以你不能進行更改,並從形式返回值。

public class Form2{ 
    public string SelectedColor = "Test"; 
} 

這應該有效。

+0

這裏是一個快速搜索你的答案:http://stackoverflow.com/questions/5233502/c-sharp-return-value-from-form – 2014-09-11 06:44:54

0

你可以使用這樣的靜態變量: 在Form1中:

Public Static Color SelectedColor; 
Form1 f1 = new Form1(); 
f1.ShowDialog(); 
this.BackColor = SelectedColor; 

在窗體2:

if(ColoeDialog1.ShowDialog()==DialogResault.OK) 
{ 
Form1.SelectedColor = ColoeDialog1.SelectedColor; 
} 
相關問題