C# 如何将所选颜色从form2发送到form1

C# 如何将所选颜色从form2发送到form1,c#,winforms,themes,C#,Winforms,Themes,我有一个带有“自定义”菜单项的Form1。单击“自定义”,我打开“Form2”。在Form2上,用户从ColorDialog中选择两种颜色。Form2有“应用”按钮。我想点击“应用”按钮,Form2应该关闭(或隐藏),选择的颜色应该作为Form1的背景色应用(绘制)。如何执行此操作?在form1中创建一个公共方法“selectcolor()”,关闭所有表单,打开一个新表单1,并在单击按钮打开表单2时使用selectcolor()选择颜色执行以下操作: Form2 f = new Form2()

我有一个带有“自定义”菜单项的Form1。单击“自定义”,我打开“Form2”。在Form2上,用户从ColorDialog中选择两种颜色。Form2有“应用”按钮。我想点击“应用”按钮,Form2应该关闭(或隐藏),选择的颜色应该作为Form1的背景色应用(绘制)。如何执行此操作?

在form1中创建一个公共方法“selectcolor()”,关闭所有表单,打开一个新表单1,并在单击按钮打开表单2时使用selectcolor()选择颜色执行以下操作:

 Form2 f = new Form2();
 f.ShowDialog();
 var returnedColor = f.SelectedColor;
这将中断form1中的代码,因此无法在其中进行更改,并从表单返回值

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

这应该是可行的。

在表格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;
}

如果对话框上有“确定/取消”按钮,则注释行是一个可选内容,您可以引入它,而不是上面的行。要关闭表单,您应该适当地设置表单
对话框result

,您可以使用如下静态变量: 在表格1中:

Public Static Color SelectedColor;
Form1 f1 = new Form1();
f1.ShowDialog();
this.BackColor = SelectedColor;
表格2:

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

我不想在form1中选择颜色。我想在form2中选择颜色并将其应用于form1。以下是快速搜索您的答案: