将变量从form1传递给form2

时间:2015-02-04 17:05:42

标签: c# forms variables

我试图传递一个在列表框中选择的变量,该变量根据目录内容将其内容转换为另一个表单,以便它可以使用该数据。

我的问题是我似乎无法弄清楚为什么这不起作用。 我对C#很新。

        private void buttonloadmod_Click(object sender, EventArgs e)
    {
        ModList.SelectedIndex = -1;
        if (!String.IsNullOrEmpty(ModList.Text))
        {
            for (int index = 0; index < ModList.Items.Count; index++)
            {
                string item = ModList.Items[index].ToString();
                if (ModList.Text == item)
                {
                    ModList.SelectedItem = index;
                    storedvar.passedMod = item;
                    Application.Run(new Form2());
                    this.Hide();
                    break;
                }
            }
        }
    }

类文件

    class storedvar
{
    public static string strUsername = string.Empty;
    public static string passedMod = string.Empty;
}

编辑:我试图将if语句中的变量放入form2。 大多数情况下,这部分似乎是什么导致了我的问题,因为当我尝试使用它时没有通过。即使我添加了调试代码,它也完全被忽略了。

                if (ModList.Text == item)
                {
                    ModList.SelectedItem = index;
                    storedvar.passedMod = item;
                    Application.Run(new Form2());
                    this.Hide();
                    break;
                }

1 个答案:

答案 0 :(得分:0)

首先,你必须删除这行代码:

ModList.SelectedIndex = -1;

这是buttonloadmod_Click中的第一行,因为列表位置永远不会改变其值。第二次使用show2对象来使用form2中的对象

Form2 f2 = new Form2(); f2.ShowDialog();

并且所有代码都是:

    private void buttonloadmod_Click(object sender, EventArgs e)
    {
        Form2 f2 = new Form2();
        if (!String.IsNullOrEmpty(ModList.Text))
        {
            for (int index = 0; index < ModList.Items.Count; index++)
            {
                string item = ModList.Items[index].ToString();
                if (ModList.Text == item)
                {
                    ModList.SelectedItem = index;
                    storedvar.passedMod = item;
                    this.Hide();
                    f2.ShowDialog();
                    break;
                }
            }
        }
    }