现在,在有人将这个问题标记为重复之前,我想说我的问题与其他问题不同。我正在尝试从另一个表单打开现有表单,但我遇到了一些问题,因为我已经将一些表单设置为“托管”其他表单(在它们之间传输变量)。这就是我的意思:
public partial class Schedule_Tasks : Form
{
readonly Schedules schedules;
public Schedule_Tasks(Schedules host)
{
this.schedules = host;
InitializeComponent();
}
所以在这段代码中,我试图从 Schedules 表单中获取一些变量的值,并将其放入 Schedule_Tasks 表单中。所以我使用了“主机”系统。到目前为止,这种方法工作正常,但是当我尝试从另一个不是“托管”的表单打开特定表单时,就会出现我的问题。例如使用:
new Schedules().Show();
所以很明显,当我声明这一点时,我会在 Schedules 之后的括号中添加类似“this”的内容,但如果在“主机”表单之外调用表单,则这不起作用。我只是想现在有什么我缺少或可以改变的吗?如果任何部分不清楚,请告诉我,这有点难以解释。任何帮助表示赞赏,干杯。
编辑
这是我现在正在使用的代码:
public partial class Schedual_Tasks : Form
{
readonly Scheduals scheduals;
public string selectedDevice;
public string getPath;
public string totalPath;
public Schedual_Tasks(Scheduals host)
{
this.scheduals = host;
InitializeComponent();
selectedDevice = scheduals.itemSelected;
}
private void Schedual_Tasks_Load(object sender, EventArgs e)
{
}
private void changeDirectory_Click(object sender, EventArgs e)
{
new Folder_Browser(this).Show(); //Error Occurs here
}
}
这是 Folder_Browser 的构造函数,这是我试图调用的表单:
readonly Back_up_Options backOptions;
public string deviceSel;
public Folder_Browser(Back_up_Options host)
{
InitializeComponent();
this.backOptions = host;
deviceSel = backOptions.deviceSel;
}