0

我打开一个表单并在该表单中初始化一个函数。进度条正在运行。然后我隐藏具有相同功能的表单。现在我需要用相同的进度条值显示另一个项目的窗口。是否可以在没有新关键字的情况下调用相同的表单?

注意:我用于隐藏表单的函数在 VB.NET 中,而要显示表单的函数在 C#.net

这是我的代码 VB.NET(隐藏窗口的函数)

Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click

Dim objUpload As New UploadingList
objUpload.Show()
objUpload.Hide()
objUpload.UploadFiles()

End Sub

这个 uploadfiles() 函数初始化进度条并上传文件。所以如果我需要从 C# 项目中显示窗口,我该怎么办?如果我创建一个新项目,进度条值也会变为默认值。这个问题有什么解决办法吗?

private void btnFiles_Click(object sender, EventArgs e)
        {
            ICloudProvider.UploadingList objUpload = new ICloudProvider.UploadingList();
            objUpload.Show();
        }

如果我遵循 C# 中的上述函数,所有控件都将返回其默认值。所以进度条没有进度。

4

1 回答 1

0

在窗体上创建一个公共共享变量以存储对在 VB 程序中创建的实例的引用。

该表单将具有以下行:

Public Shared Instance as UploadingList

创建表单时,需要设置此变量:

Dim objUpload As New UploadingList
UploadingList.Instance = objUpload
objUpload.Show()
objUpload.Hide()
objUpload.UploadFiles()

现在从您的 C# 程序中,您无需创建表单的新实例,而只需使用现有的实例:

private void btnFiles_Click(object sender, EventArgs e)
{
  ICloudProvider.UploadingList objUpload = ICloudProvider.UploadingList.Instance;
  if(objUpload!=null)
  {
    objUpload.Show();
  }
}

请记住在窗体关闭时将 Instance 变量设置为 null(在 VB 中为空)。

于 2012-08-30T16:48:05.067 回答