我试图传递一个在列表框中选择的变量,该变量根据目录内容将其内容转换为另一个表单,以便它可以使用该数据。
我的问题是我似乎无法弄清楚为什么这不起作用。 我对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;
}
答案 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;
}
}
}
}