我打开一个表单并初始化该表单中的函数。进度条正在运行。然后我隐藏具有相同功能的表单。现在我需要显示具有相同进度条值的另一个项目的窗口。是否可以使用新关键字调用相同的表单?
注意:用于隐藏表单的我的函数是在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#中执行上述功能,则所有控件都会达到其默认值。所以进度条没有进展。
答案 0 :(得分: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中没有任何内容)。