如何将选定的颜色从form2发送到form1

时间:2014-09-11 06:31:48

标签: c# winforms themes

我有一个带有MenuItem的Form1' Customize'。点击自定义后,我打开' Form2'。在Form2上,用户从ColorDialog中选择两种颜色。 Form2已经申请了#39;按钮。我想点击'应用'按钮,Form2应该关闭(或隐藏),并且应该将所选颜色应用(绘制)为Form1的背景颜色。我该怎么做?

4 个答案:

答案 0 :(得分:1)

你在form1中创建一个公共方法“selectcolor()”,关闭所有表单,打开一个新的form1并使用selectcolor()来选择颜色

答案 1 :(得分:0)

当您单击按钮打开表单2时,请执行以下操作:

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

这将中断form1中的代码,因此您无法在那里进行更改,并从表单中返回值。

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

这应该有用。

答案 2 :(得分: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;
}

如果对话框中有ok / cancel按钮,则可以引用注释行而不是上面的行。要关闭表单,您应该正确设置表单DialogResult

答案 3 :(得分:0)

你可以使用这样的静态变量: 在Form1中:

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

if(ColoeDialog1.ShowDialog()==DialogResault.OK)
{
Form1.SelectedColor = ColoeDialog1.SelectedColor;
}