【问题标题】:Using set and get from form2 to form1使用 set 和 get 从 form2 到 form1
【发布时间】:2015-09-07 08:24:13
【问题描述】:

我已经坚持了好几个小时了,我无法理解它......我对编码很陌生。

我有 2 个表格

Form1 有一个空字符串变量

Form1 有一个打开按钮,可以打开 form2

Form2 有多个复选框

Form2 有一个确定按钮

当点击 form2 ok 按钮时,它会设置我想从 form2 传递给 form1 的变量。变量是复选框。检查哪个是用 if 语句设置的。

在按下ok并关闭form2之后。

问题是如何将form2中的字符串传递给form1。

有一些解释的工作示例会很棒。

我试过get和set,但不是很懂。

【问题讨论】:

标签: c# get set


【解决方案1】:

在form1中创建一个公共静态变量

您可以使用静态变量,这将是归档目标的最简单解决方案,但还有其他方式,例如构造函数、容器、事件等。

public static string var1
{
    get { return En; }
    set { En = value; }
}

public static string var2
{
    get { return var2; }
    set { var2 = value; }
}

另外一种形式

private void button1_Click(object sender, EventArgs e)
{
    Form1 F1 = new Form1();
    Form1.var1 = textBox1.Text;
    Form1.var2 = textBox2.Text;
}

请注意,一个类的静态变量只存在一次。因此,如果您有多个实例并且将静态变量更改为一个,则更改也会影响所有其他实例。

【讨论】:

  • 谢谢,我会试一试
【解决方案2】:

好的,我终于把它整理好了。

我在使用 get 和 set 时遇到了问题,等我有更多经验后,我会再做一次,不过,现在,我会这样做,以防其他人需要这样做。

再一次,我正在做的是:

在 form2 上选择一个复选框,然后按 OK,然后运行一个 if 语句并检查哪个复选框被选中,并根据该复选框设置一个字符串变量以进行验证检查,然后 form2 关闭。

在 form1 上,我刚刚加载了 checkBox.Checked Text 属性并将其设置为变量。 这是我的代码。

form2 中的 day 是全局字符串变量,form1 中的 runDay 也是。

form2 上的所有复选框修饰符都设置为 public 以使 form1 能够读取它们,但我不确定这是否是好的做法,我仍然是新手。

Form2(从这里发送变量)

    //
    //OK BUTTON
    //
    public void okBtn_Click(object sender, EventArgs e)
    {
        if (cbMonday.Checked)
        {
            day = "Monday";
            MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK);
            this.Close();
        }
        else if (cbTuesday.Checked)
        {
            day = "Tuesday";
            MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK);
            this.Close();
        }
        else if (cbWednesday.Checked)
        {
            day = "Wednesday";
            MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK);
            this.Close();
        }
        else if (cbThursday.Checked)
        {
            day = "Thursday";
            MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK);
            this.Close();
        }
        else if (cbFriday.Checked)
        {
            day = "Friday";
            MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK);
            this.Close();
        }
        else if (cbSaturday.Checked)
        {
            day = "Saturday";
            MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK);
            this.Close();
        }
        else if (cbSunday.Checked)
        {
            day = "Sunday";
            MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK);
            this.Close();
        }
        else if (string.IsNullOrWhiteSpace(day))
        {
            MessageBox.Show("You have not selected any days", "Woops");
        }

    }

Form1(这里设置变量)

               private void scheduleBtn_Click(object sender, EventArgs e)
    {
        Schedule frm = new Schedule();
        frm.ShowDialog();
        if(frm.cbMonday.Checked)
        {
            runDay = "Monday";
        }
        else if(frm.cbTuesday.Checked)
        {
            runDay = "Tuesday";
        }
        else if(frm.cbWednesday.Checked)
        {
            runDay = "Wednesday";
        }
        else if(frm.cbThursday.Checked)
        {
            runDay = "Thursday";
        }
        else if(frm.cbFriday.Checked)
        {
            runDay = "Friday";
        }
        else if(frm.cbSaturday.Checked)
        {
            runDay = "Saturday";
        }
        else if(frm.cbSunday.Checked)
        {
            runDay = "Sunday";
        }
        dayLbl.Text = runDay;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多