我的實踐環境是windows7,vs2010.
從本質上說,要在c# winform程序里嵌入FLASH,其實就是直接引用Flash的ocx控件。那你就需要使用“COM 組件” Shockwave Flash Object。不過這個”Flash.ocx”控件不能直接在“COM 組件”窗口中找到。我們需要注冊它。具體步驟如下:
第一步:打開vs2010(或者2008,2005),選擇菜單中的“工具”–“自定義工具箱”,打開“自定義工具箱”窗口,在“COM組件”中點擊“瀏覽”鍵,然后選擇“c:\WINDOWS\system32\Macromed\Flash\Flash10o.ocx(還有一個Flash10n.ocx,選擇一個即可)”控件,點擊確定,稍等。。。讓程序運行完。
第二部:注冊自己添加的flash組件。在開始-》運行窗口執行如下命令:
regsvr32 c:\WINDOWS\system32\Macromed\Flash\Flash10o.ocx按下Enter鍵,等候。。。,注冊過程需要一點時間。
第三步:重啟你的vs,進入winform設計界面,此時在工具箱面板,你將看到這個部分,如下圖:

我們需要使用的是Shockwave Flash Object控件,此時,這個控件的使用跟你向winform中添加一個按鈕的操作一個樣。
向winform中添加一個Shockwave Flash Object控件后,我們需要給它傳遞我們要嵌入的swf文件的路徑,然后就可以測試嵌入效果了。配置路徑的屬性是Movie
axShockwaveFlash1.Movie = “e:\\test.swf”;//這行代碼在你想讓flash出現的時候執行。
/**axShockwaveFlash1是控件名。axShockwaveFlash1還有一個函數是Play(),不調用也可以。
這個時候,如果一切都順利的話,你已經可以達到自己的目的了。不過我還遇到了一些很特別的問題。
按照上一篇文章的步驟,就可以在vs2010中隨意向winform中嵌入flash了,但是好事多磨,意外總有,我就遇到了一些神馬問題,雖然解決了,但是也不能說清這些問題的根源。
一、找不到依賴項。就是類似沒有引入dll導致vs報說“找不到依賴項:&*……%&¥#&,Version 1.0 ”,嘰嘰呱啦一大坨。這個問題甚至導致我進winform設計界面時都進不了,(vs說界面有錯)。
解決方法:退出vs,重新啟動。進入項目,清理解決方案,重新生成解決方案。看看bin目錄是否有
AxShockwaveFlashObjects和ShockwaveFlashObjects的引用,以及引用前面是否有黃色的警示標識。沒有的話第一個問題就解決了。想想原因大概就是我們剛完成注冊,vs有些地方沒有更新。
二、winform中swf不播放:無論我怎么調整swf的路徑,調用flash控件的Play()函數,winform就是不顯示swf的內容,原本要顯示flash的地方空白一片。這個問題折磨了我好一會。在我一再實驗后,也終於被解決了。過程也很簡單。
解決方法:在winform中,點擊flash控件,在屬性面板中,選擇Movie項,填入要嵌入的swf文件的地址,如:e:\\test.swf。運行項目,看看winform啟動后嵌入的flash是否顯示。我實驗的時候是顯示了。然后,重新將Movie項的值清空(這份都費了好大的勁,我遇到的情況是一直清不掉里面的值。我就一個字母一個字母的刪,最終才清空),按照代碼給flash控件的Movie屬性賦值的方法再試一次,結果就正常了。
三、在64位windows7中,需要將項目的生產環境改為x86,否則在運行時將提示錯誤。
轉載:http://blog.163.com/da7_1@126/blog/static/10407267820118172137794/