2

我在 Form1 中定义了一个类

    public class Conditions
    {
        public string name { get; set; }
        public int probability { get; set; }
        public DateTime start_time { get; set; }
        public DateTime end_time { get; set; }
        public int age_min { get; set; }
        public int age_max { get; set; }
        public bool meldpeld { get; set; }
        public bool onea { get; set; }
        public bool oneb { get; set; }
        public int gender { get; set; }  // 0 - both, 1 - male, 2 - female
        public int meld_min { get; set; }
        public int meld_max { get; set; }

    }

我正在制作一个新列表,例如

    List<Conditions> newconditions = new List<Conditions>();

然后,我打电话给 Form2

        Conditions newconds = new Conditions();
        Form2 form2 = new Form2(newconds);
        form2.Show();
        form2.TopMost = true;

在 Form2 中,我有

    public Form2(Form1.Conditions newcond)
    {
        InitializeComponent();
        comboBox1.SelectedIndex = 2;
    }

我可以在那里为 newcond 使用设置的东西

然而,我想做的是在 Form2 的另一个函数中设置东西,称为

    private void button2_Click(object sender, EventArgs e)

而且我不知道如何在该函数中使用 newcond 。我一定遗漏了一些明显的东西,对吧?

另外,这是一个好方法吗?基本上我想做的是让用户定义任意数量的条件(他们可以添加、编辑、删除),然后在他们运行程序时使用这些条件。

谢谢

4

2 回答 2

5

你在正确的轨道上。

基本上,我会将您的条件类移动到它自己的名为Conditions.cs 的文件中——这是最佳实践。

然后在你的类文件中为 Form2 定义一个成员变量。然后在 Form2 的构造函数中设置该成员变量。

private Conditions _conditions;
public Form2(Conditions cond)
{
    _conditions = cond;
    InitializeComponent();
    comboBox1.SelectedIndex = 2;
}

然后你可以在你的点击方法中使用它:

protected void button2_click(object sender, EventArgs args)
{
    //Do things with _conditions
}
于 2012-07-23T15:32:12.037 回答
1

你大部分都在那儿。您只需要创建一个可以存储Conditions对象的实例字段(或可能是一个属性)。在构造函数中根据参数设置该字段,然后在事件处理程序中使用它。

于 2012-07-23T15:30:36.777 回答