天天看點

關于WinForm控件在asp.net中應用的問題。

關鍵詞: asp.net 2.0 , IE , WinForm , OCX, ActiveX, 控件互動, dotnet 互操作, com 互操作

運作環境:.net framework2.0,

開發環境:Visual Studio 2005(WinForm2.0, asp.net2.0)

在很多時候,我們不得不在asp.net嵌入一些桌面控件,例如win32 OCX(ActiveX)控件,dotnet WinForm控件。在這裡,把應用中碰到的一些問題簡要說明一下。

1.     OCX控件在asp.net 1.x下面可以直接從工具欄中拖放到WebForm頁面上去使用,設計時,頁面可以顯示出具體的可視化效果。可以使用JavaScript進行互動。

2.     OCX控件在asp.net 2.0下面不可以從工具欄中拖放到WebForm中去。此時,工具欄圖示是灰色不可用的。是以,我們必須手動修改html視圖,在其中嵌入object 元素,文法跟asp.net 1.x一樣。此時WebForm頁面不會顯示出控件的真實的設計效果,隻是顯示一個方框,代表OCX控件的尺寸。

3.     簡單WinForm控件在asp.net 1.x , asp.net 2.0下面都不可以從工具欄中拖放到WebForm中去。此時,工具欄圖示是灰色不可用的。是以,我們必須手動修改html視圖,在其中嵌入object 元素,文法跟asp.net 1.x一樣。此時WebForm頁面不會顯示出控件的真實的設計效果,隻是顯示一個方框,代表OCX控件的尺寸。隻有在運作時,才能顯出真正的效果。

這種情況跟ocx在asp.net 2.0下的效果。

上面,對于簡單的定義是,控件隻含有基本(系統自帶)WinForm控件,不含有win32 OCX控件。

4.     複雜控件在asp.net 1.x , asp.net 2.0下面都不能直接使用,手動使用代碼也不行。

上面,對于簡單的定義是,控件含有win32 OCX控件。

5.     對于要在asp.net混合使用win32 OCX控件和dotnet WinForm控件,一個可行的做法是:

a)       在windows使用者控件裡,把ocx打抱成winform,此時win32和dotnet可以互動操作。

b)      在asp.net中,打winform使用者控件打包成asp.net Web使用者控件。在asp.net 1.x時裡可以使用設計嚣,在asp.net 2.0下隻能使用代碼。

c)       把asp.net頁面中使用Web 使用者控件。