国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

WebForm中調用WinForm界面的方法簡介

2023-05-10 18:49:19
字體:
來源:轉載
供稿:網友

CS架構的winForm與BS架構的webForm是不能直接通信的,那么真的就一點兒辦法都沒了嗎?其實不然。

看了網上很多資料,我總結出有兩種方式可以實現。

1)首先客戶端需要用注冊表寫入協議,通過協議去找已經安裝在客戶端的winForm的exe文件,這時可以給窗體傳入參數,例如 “helloworld://你個豬頭”, helloworld是協議,后面”你個豬頭“是傳入的字符串。當然winForm的main方法寫法也有不同,需要得到參數(也可以不要參數,如果不需傳參,直接調用)

       /// <summary>
        /// 應用程序的主入口點。
       
/// </summary>

        [STAThread]

       
static void Main(string[] args)
        {
           
//Application.EnableVisualStyles();
           
//Application.SetCompatibleTextRenderingDefault(false);
           
//Application.Run(new Form1());
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(
false);
            Form1 frm
= new Form1();
           
if (args.Length > 0)
            {
                frm.strArgs
= args[0];
                MessageBox.Show(args[
0]);
                Application.Run(frm);
            }
           
else
            {
                Application.Run(
new Form1());
            }
        }

注冊表中指向調用winForm所在的exe文件路徑即可,具體代碼詳見測試案例;當然調用也很簡單 如

<a href="helloworld://你個豬頭"><img border="0" SRC='hello.jpg' alt="測試"></a>

后面附上測試案例。

2)第二種就是調用active插件,也叫ocx插件,需要客戶端注冊一個插件,我們可以新建一個”windows窗體控件庫“來實現,具體方法我也不多講,可以參考:http://hi.baidu.com/dosonet/blog/item/7ced5d929411a2ada877a446.html

簡單說說我當時遇到的困難和特別需要注意的:

a. 在一個”windows窗體控件庫“項目中,可以新建多個用戶控件窗體,但是如果要網頁上正常調用,必須實現IObjectSafety接口,具體實現可以完全ctrl + c, ctrl + v,并且需要指定完全不同的guid值,否則不能正常調用。

b. 不同用戶控件窗體是不能相互調用的,如果要調用不同窗體,直接新建Form就行,然后可以采取用戶控件中彈出Form來實現。詳見我的測試案例。

總結下,其實winForm中實現active插件也不是很難,只是winForm必須基于.NET framework來工作,所以我建議winForm的版本在2.0,不要升級到3.0及其以上,因為安裝在客戶上,2.0只需20M左右,3.0則要幾百M,如果不是必須用C#來實現的話,用C,C++,或者delphi更好……

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 甘孜县| 垦利县| 即墨市| 湾仔区| 图木舒克市| 鹿邑县| 清水河县| 定西市| 上饶市| 古浪县| 涞水县| 咸宁市| 镇原县| 长沙市| 雷波县| 龙川县| 含山县| 江源县| 霞浦县| 英超| 沅江市| 隆回县| 外汇| 安丘市| 新竹市| 昭通市| 嘉定区| 万源市| 龙泉市| 平和县| 丰顺县| 张家界市| 石家庄市| 通化市| 竹北市| 高邮市| 商洛市| 抚州市| 威海市| 拉萨市| 长白|