为什么我在执行form.ShowDialog()时会丢失变量值?

时间:2013-08-02 23:57:54

标签: c# winforms

看到这个: 主要表格代码:

public partial class Principal : Form
{
    string directoriodelarchivo;
    ... 


    ....
    private void opendicomdir_Click(object sender, EventArgs e)
    {
        directoriodelarchivo = System.IO.Path.GetDirectoryName(ofd.FileName);
        var form = new dicomdirselectionform(_reader);
        form.ShowDialog();  
    }
}

我用其他形式做了一些东西,然后按一个按钮返回主窗体,事情就是当我返回主窗体时,变量“directoriodelarchivo”是空的!

为什么会这样?我是C#的新手,我正在试图找出是否有我缺少的东西

2 个答案:

答案 0 :(得分:0)

有两个原因

  1. 您以某种方式重新创建此表单。所以它默认有价值。

  2. 您在某些代码中更改了该var。只是尝试找到该变量的引用,你就可以确定它。

  3. 我希望它会对你有所帮助!

答案 1 :(得分:0)

我不能立即明白可能导致这种情况的原因。为了找到原因,我建议做这样的事情:

  1. 删除可能正在更改directoriodelarchivo的所有其他代码。
  2. 在代码的每一步之后添加一些简单的方法来检查directoriodelarchivo的值。 (例如:https://ideone.com/E38zc2
  3. 如果这样做,请尝试通过更改directoriodelarchivo来查找在步骤1中删除的代码,该代码会破坏您的应用程序。如果没有,ofd.FileName可能会导致directoriodelarchivo的值不合格。