2012-08-30 63 views
0

我打開窗體並初始化該窗體中的函數。進度條正在運行。然後我用相同的功能隱藏窗體。現在我需要從另一個項目中顯示具有相同進度欄值的窗口。是否可以用新的關鍵字調用相同的表單?從另一個具有相同值的項目調用Windows窗體

注:我的功能是用來隱藏表單是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

在表單上創建一個公共共享變量來存儲對VB程序中創建的實例的引用。

形式將有以下行:

Public Shared Instance as UploadingList 

當您創建表單,你需要設置這個變量:從你的C#程序

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

現在,而不是創建一個新的表單實例,您可以簡單地使用現有的:

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

記得設置I當窗體關閉時,nstance變量爲null(VB中沒有任何內容)。

+0

謝謝老兄。但是我已經用你告訴的方式解決了這個問題。非常感謝你。 –

相關問題