如何使用其他函数中的(私有)变量?

时间:2018-12-07 11:44:58

标签: c# windows winforms dll hyper-v

对于整个上下文,我正在使用WinForms,首先,我有一个显示我Hyper-V Manager上所有虚拟机的表单,并且每个按钮都具有许多与该Datagridview关联的功能。外观如下:

enter image description here

(忽略名称,它们都是测试机)

因此,右侧的蓝色小按钮显示为“ Snapshot VM”,它会打开一个新表单,因此您可以为其选择一个名称,如下所示:

enter image description here

我想要的是保存在主窗体(单击按钮之前单击的行)上选择的索引,以便可以从DLL中调用函数snapshotVM,如下所示:

public void snapshotVM(string id, string name)
        {
            if (name == "") powershellFunc("Get-VM | Where { $_.Id –eq ‘" + id + "’ } | Checkpoint-VM");
            else powershellFunc("Get-VM | Where { $_.Id –eq ‘" + id + "’ } | Checkpoint-VM -SnapshotName '" + name + "'");
        }

powershellFunc仅接受powershell命令并执行它们,以进行澄清)

因此,基本上,我需要从一种形式中获取string id,并从另一种形式中获取string name,或者在同一形式中从一个函数中获取一个私有变量,并在另一个函数中使用它。这就是我的意思:

enter image description here

我需要在下面的按钮内使用index变量。有什么办法可以将其“转移”到那里吗?

最后,如果我应该从哪里调用snapshotVM函数,或者有什么解决方法?任何帮助将不胜感激,包括要求澄清,因为我觉得这有点混乱,我没有正确解释,但我将等待编辑的建议。

1 个答案:

答案 0 :(得分:2)

只需在类上使用私有变量:

private string _index;
....
public NewSnapshotVM(...)
{
  ...
  _index = dgv.Rows[...];
}
...
pirvate void button1_Click(...)
{
  // use _index as much as you want
}