在我的项目中,我有2个文件:
Form1.cs
Form2.cs
在Form1.cs
中,我有以下代码:
foreach (var file in files)
{
File.Copy(file, tempPath + @"\" + System.IO.Path.GetFileName(file));
if (File.Exists(file))
{
//here I want to use a custom MsgBox with a checkbox (form2)
}
}
在Form2.cs
中,我创建了一个自定义MsgBox,我要在其中使用显示的文本中的最后一个文件名(文件中的字符串文件)。
它说“文件”不可用。如何在两种表格之间共享变量?我知道我必须将其声明为公共,但是当我尝试这样做时,它会弄乱我的代码。
答案 0 :(得分:0)
一切都取决于上下文;除了static
字段外,没有一个公共的共享全局上下文,并且 please 请勿为此滥用它们。没有单一的“我的form1 /我的form2”-您可以有0个,1个或很多-并且代码无法猜测您的意图。
最好的做法可能是使Form2
的{{1}}的 instance (请重命名!),以便执行类似的操作。 :
refresh()
但是,这意味着您仅实际上显示 last void Refresh(Form2 form)
{
var files = <mydirectory>
foreach (string file in files)
{
form.Text = file;
}
}
值。所以;您想与不是最后一个的其他人做什么?是其他形式的多个实例吗? 我们不知道!