在我的應用程序中,我有兩個winforms。第一個作爲我的控制面板,第二個作爲屏幕截圖。但是,當我從Winform 2返回到Winform 1時,我創建了一個新的Winform並創建了一個全新的托盤圖標。這是我在程序第一次啓動時創建的最初的。當我製作一個新的Winform時刪除舊的winform和托盤圖標
當我的winform 1到WinForm的2我執行以下操作:
this.Hide();
Form2 form2 = new Form2();
form2.InstanceRef = this;
form2.Show();
然後,當我想去從WinForm的2回WinForm的1我做了以下內容:
this.Close();
Winform1 form;
form = new Winform1 (capturedImageObj);
form.Show();
我知道直接蝙蝠的問題落在我創建一個新的Winform1的事實,但我需要這樣做,所以我可以通過我的capturedImageObj回到Winform 1.
我試過撥打this.close()
和this.dispose()
在我的第一部分代碼中,但只關閉程序。有沒有一種方法可以處理Winform 1,但仍然使用Winform 2並將需要的對象傳回到Winform 1的新副本中?
這裏是我的Winform 1的構造:
public ControlPanel(Image imjObj)
{
InitializeComponent();
_screenCap = new ScreenCapture();
_screenCap.OnUpdateStatus += _screen_CapOnUpdateStatus;
capturedImage = imjObj;
imagePreview.Image = capturedImage;
}
當captureImageObj沒有傳遞給Winform1時,它是否按預期工作? – Kurubaran
爲什麼不在winform2中創建自定義事件,然後在Winform1中訂閱它。或者您可以偵聽Winform2的FormClosing事件,添加一個方法到Winform2中暴露圖像並從Winform2中獲取FormClosing EventHandler –
capturedImageObj是我的Winform1構造函數的一部分我需要在我的第一個winform中顯示一些東西。我會更新我的構造函數代碼 – N0xus