2011-02-08 6 views
0

ColorDialog에서 반환 된 색상 값을 한 양식의 다른 양식에 지정하려고합니다.C#의 다른 폼에 ColorDialog.Color를 어떻게 할당 할 수 있습니까?

양식 1은 '장소 주문'(컨트롤 묶음으로 새 양식 만들기)과 '색상 선택'(장소 주문 양식의 색상을 변경할 수 있음)으로 구성되어 있습니다. 따라서 Place Order와 Select Color를 동시에 열 수 없습니다.

따라서, 나는 어떤 식 으로든 Place Order 폼의 BackColor 속성을 참조해야만 ColorDialog.Color이 Place Order 폼에 할당 될 수 있도록 두 개의 버튼이있는 폼으로 구성되어야합니다.

를 Form1 코드 :

private void SelectColor_Click(object sender, EventArgs e) 
{ 
    if (colorDialog1.ShowDialog() == DialogResult.OK) 
    { 
     string color = Convert.ToString(colorDialog1.Color); 
     MessageBox.Show(color); 
     this.BackColor = colorDialog1.Color; // BackColor is only accessible for this form 
    } 
} 
+0

안녕하세요, 귀하의 질문을 편집하고 다른 형태입니다 설명해주십시오, 당신은 Form1 만 보여줍니다, Form2는 어디에 있고 어떻게로드합니까? –

+3

진짜 질문은 "주문 주문"양식에서 "색상 선택"버튼이 아닌 이유는 무엇입니까? 이 양식에 직접 영향을 미친다는 점을 감안할 때이 양식에 물리적으로 위치하지는 않습니다. 이렇게하면 선택한 색상을 나타내는 변수 또는 "주문 주문"양식의 인스턴스를 메모리에 유지할 필요가 없기 때문에 작업을 훨씬 쉽게 할 수 있습니다. –

답변

0
if(colorDialog1.ShowDialog() != DialogResult.OK) {return;} 

form2 f = new form2(); 
f.BackColor = colorDialog1.Color; 
f.Show(); 
1

당신이하고있는 방법, 당신은 색상을 보유하는 변수를 유지해야합니다.

//Declare this private variable to hold the color selected by the user 
private System.Drawing.Color selectedcolor;  

private void SelectColor_Click(object sender, EventArgs e) 
{ 
    if (colorDialog1.ShowDialog() == DialogResult.OK) 
    { 
     selectedcolor = colorDialog1.Color; // BackColor stored in variable 
    } 
} 

다음 새 양식 (장소 주문 버튼)를 시작 코드에서이 넣어 :이처럼 마십시오

private void PlaceOrder_Click(object sender, EventArgs e) 
{ 
    //I am assuming PlaceOrderForm is the name of the class of your other form 
    PlaceOrderForm frm = new PlaceOrderForm(); 
    //Initialize other properties and events,etc. 
    //Then make its background color as selected by user 
    if(selectedcolor != null) frm.BackColor = selectedcolor; 
} 
+1

이것은 맞지만, 선택한 색상을'string'으로 변환하는 코드를 왜 보여 줬는지 확신 할 수 없습니다. 나는 그것이 당신이 이제 주석 처리 한'MessageBox' 호출을위한 것이라고 생각합니다; 아마 그 위의 줄도 주석 처리되어야합니다. –

+0

예, 나는 그것을 잊어 버렸습니다. 하나만 .. 전부 제거했습니다. –

관련 문제