首先,我會解釋我的程序。總是返回空值
我有一個winform,我用作我的控制面板。從這裏我可以使用鼠標拍攝桌面屏幕截圖來定義區域。就像剪切工具在窗口中的工作方式一樣。
,屏幕截圖使用由稱爲Form1的另一種形式跑到我的屏幕截圖類生成。第二種形式沒有其他代碼,只是用於生成屏幕快照將使用的矩形。從這裏開始,拍攝的屏幕截圖存儲在剪貼板中,並傳回到我的屏幕截圖類。
現在,從這裏我要的是在我的控制面板顯示此圖像拍攝的圖片框。完全像剪切工具的工作原理。然而,我寫過的代碼將這個圖像從屏幕截圖類傳遞給控制面板,它抱怨事件處理程序總是返回爲空。
我已經寫了這個過程的代碼如下:
Image img = (Image)bitmap;
if (OnUpdateStatus == null) return;
ProgressEventArgs args = new ProgressEventArgs(img);
OnUpdateStatus(this, args);
我試着註釋掉if語句,但隨後OnUpdateStatus拋出異常的處理說它不再存在。現在
,在我的控制面板形式我想抓住這形象,用下面的代碼顯示:
private ScreenCapture _screenCap;
public ControlPanel()
{
InitializeComponent();
_screenCap = new ScreenCapture();
_screenCap.OnUpdateStatus += _screen_CapOnUpdateStatus;
}
private void _screen_CapOnUpdateStatus(object sender, ProgressEventArgs e)
{
imagePreview.Image = e.CapturedImage;
}
我這個花了幾個小時,但我不能工作了,爲什麼圖像不會顯示在我的ControlPanel上的圖像框中。任何一個擁有全新眼睛的人都能幫助我嗎?爲什麼它是我拍攝的屏幕截圖圖像,沒有顯示在我的ControlPanel上的圖片框中?
請具體說明並僅發佈相關代碼 – Ehsan
'我已花費了數小時的時間'我們不想在此花費數小時,請僅發佈相關或可疑代碼? –