在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

從在 Internet Explorer 中運用 Windows 窗體控件開始談Smart Client

從在 Internet Explorer 中運用 Windows 窗體控件開始談Smart Client

更新時間:2019-11-23 文章作者:未知 信息來源:網絡 閱讀次數:

首先引用Microsoft Windows 窗體快速入門教程上的文章"在 Internet Explorer 中使用 Windows 窗體控件":(如果引用的一些信息無法正常顯示,請直接上面上的鏈接查看)

本主題描述如何在 Internet Explorer (IE) 內成功地執行 Windows 窗體控件。IE 內的 Windows 窗體控件無需用戶提示即可激活,它不要求注冊,而且利用公共語言運行庫 (CLR) 代碼訪問安全性。

在 Internet Explorer 內激活 Windows 窗體控件需要五步,這里列出了每一步,并在下面詳細介紹。

創建 Windows 窗體控件。
創建帶有 object 標記的 HTML 文檔。
創建虛擬目錄并設置權限。
運行該控件。
創建 Windows 窗體控件
在 Internet Explorer 中幾乎可以承載任何 Windows 窗體控件,但是對于此示例,我們將承載本快速入門教程的創建控件部分中包含的 SimpleControl。該控件必須安裝到全局程序集緩存中或者與包含它的 Web 頁位于同一虛擬目錄中。



創建帶有 object 標記的 HTML 文檔
下一步是創建帶有 object 標記的 HTML 文檔,該標記引用 Windows 窗體控件。對于此示例,還將添加一些簡單的腳本和輸入標記,以演示對該控件進行編程訪問。

<object id="simpleControl1"

classid="http:SimpleControl.dll#Microsoft.Samples.WinForms.Cs.SimpleControl.SimpleControl"
height="300" width="300" VIEWASTEXT>
<param name="Text" value="Simple Control">
</object>


classid 有兩個令人感興趣的部分:指向控件庫的路徑和控件的完全限定名,這兩者由 # 號分隔開。如果您熟悉 ActiveX object 標記,將注意到缺少一個 guid。在 Windows 窗體中,路徑和完全限定類名的組合作為唯一標識符。

Param 標記可用于設置控件上的屬性。在這種情況下,name 特性是屬性的名稱,value 特性是屬性的值。


<script>

function ChangeText() {
simpleControl1.Text = text1.value;
}

</script>
?-

<input type="text" id="text1">
<input type="button" value="Change Text" onclick="ChangeText()">


若要獲取對控件的編程訪問,可以針對該控件編寫腳本。將該頁上的按鈕和文本框與簡單 JScript 函數 ChangeText 一起使用來設置控件的 text 屬性。下面是此示例的完整 HTML 和腳本代碼。

<html>

<script language="JScript">

function ChangeText() {
simpleControl1.Text = text1.value;
}

</script>

<body>

<p>Simple Control
<br>
<br>
</body>

<object id="simpleControl1"

classid="http:SimpleControl.dll#Microsoft.Samples.WinForms.Cs.SimpleControl.SimpleControl"
height="300" width="300" VIEWASTEXT>
<param name="Text" value="Simple Control">
</object>

<br>
<br>

<input type="text" id="text1">
<input type="button" value="Change Text" onclick="ChangeText()">

</html>

創建虛擬目錄并設置權限
該 HTML 頁必須駐留在 Web 服務器上的 IIS 虛擬目錄中,而且必須具有相應的權限。在此示例中,Windows 窗體控件駐留在同一目錄中,但它也可以安裝到全局程序集緩存中。虛擬目錄上的執行權限必須設置為 scripts,如果執行權限設置為 scripts & executables,則將無法正確激活該控件。對于此示例,已經為您執行了這些步驟。


運行該控件
若要運行該控件,只需將 Internet Explorer 指向虛擬目錄中的該 HTML 頁。如果該控件沒有正確激活,可能需要重新啟動 Internet Explorer。

///////////////////////////////////////////////////////////////////////////////

//引用結束

自從我上次看了MSDN的WebExc活動上小陳在webcast_asp.net_2(也就是asp.net技巧2)里演示的在網頁里放上window程序的所謂Smart Client(不知道有沒有單詞寫錯了),我就老是睡不著覺。怎么型呢?
而且老是重復的看小陳打開的那兩個原代碼的圖片:

那,小陳的這個代碼跟上面引用的那個文章里的:
<object id="simpleControl1"
classid="http:SimpleControl.dll#Microsoft.Samples.WinForms.Cs.SimpleControl.SimpleControl"
height="300" width="300" VIEWASTEXT>
<param name="Text" value="Simple Control">
</object>
可以說是一樣的。

以前,我并沒有十分注意的去看window forms快速入門的文章。我記得我以前是看過那些的文章。但是我一直都是開發B/S為主,所以就算是看了也因為沒有應用起來而忘了。//話外

于是我按照快速入門的示例代碼完全一樣的做了一個。
成功了!
心里感覺特別的興奮,就算是半夜了我也要繼續搞下去。

我就自己開始做了……
我第一個放上去的是,把一個正常情況寫出來的窗體。
顯示不出來,我暈了。為什么顯示不出來啊。我也是按上面的意思做的啊!
我又把自己的代碼看了好幾遍,沒錯的,可就是沒戲。
//我后來的摸索才發現,窗體是不能放上去的,而只能放控件
請再參考一下上小陳上次演示的程序圖片:



這個圖片中(左為web上的,左為window),你會發現小程演示時的window窗體跟web上那個有一點點不一樣:就是winow上多了一個“Game”菜單。
所以它是一個窗體文件(控件上不能放MainMenu控件)。而不是控件。而菜單下面的那個就是了。所以它才能被分離出來放在web上(放在web上的應該是用戶控件或是自定義控件)。
我原先以為,小陳那個.exe文件放上去。是一個應用程序的Main()函數起動的。
我再說一次窗體文件是不能放上去的。或說所有繼承自Form的文件都不放上去。(原因我還不知道。我過去一直是搞b/s的。呵呵。)

自把窗體文件放上去失敗之后,我又試了很多次把控件放上去。當中的失敗我就不多講了。我把摸索出來的一些可能對大家有用的東西給大家分享。

1。在這里我建議大家用“用戶控件”先玩一玩:用它比較方便。自定議控件的操作有點兒不可視化。但是,只要是控件都是可以的。

2。控件代碼里的一部份代碼要刪掉!
新建一個用戶近件的默認代碼是:
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

namespace WindowsApplication3
{
/// <summary>
/// UserControl1 的摘要說明。
/// </summary>
public class UserControl1 : System.Windows.Forms.UserControl
{
/// <summary>
/// 必需的設計器變量。
/// </summary>
private System.ComponentModel.Container components = null;//需刪掉

public UserControl1()
{
// 該調用是 Windows.Forms 窗體設計器所必需的。
InitializeComponent();

// TODO: 在 InitializeComponent 調用后添加任何初始化

}

/// <summary>
/// 清理所有正在使用的資源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}//這個方法需刪掉

#region 組件設計器生成的代碼
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器
/// 修改此方法的內容。
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();//需刪掉,不過你只要在設計器里拉一個控件,它就會沒有了。
}
#endregion
}
}
如果不去掉的話會無法在Web上正常運行。去掉后的代碼:
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

namespace WindowsApplication3
{
/// <summary>
/// UserControl1 的摘要說明。
/// </summary>
public class UserControl1 : System.Windows.Forms.UserControl
{
/// <summary>
/// 必需的設計器變量。
/// </summary>

public UserControl1()
{
// 該調用是 Windows.Forms 窗體設計器所必需的。
InitializeComponent();

// TODO: 在 InitializeComponent 調用后添加任何初始化

}
#region 組件設計器生成的代碼
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器
/// 修改此方法的內容。
/// </summary>
private void InitializeComponent()
{

}
#endregion
}
}

原因問題我也不是很明白。但是資源清理的話,我想,控件加載后是放在web的緩存里的。一但關掉。緩存里的數據也就沒有了//我對windows方面不熟悉,所以可能講得很錯誤:)

3。在web上的window控件不能以XP的風格運行(或許可以,但是我弄了好久也沒戲,畢竟我是window外行。誰弄出來了一定要貼出來共享)

4。項目不管是編譯成.exe或是.dll文件都是可以的.

好了,現在我們開始來做一個試試。
新建一個C#窗口項目,名字隨便取,我取了個:SmartClient1
項目里的Form1.cs文件,你不喜歡就把它刪掉也可以。我是把它刪除了。
然后新建一個用戶控件:UserControl1.cs文件。
在它上面隨便拉一個控件出來上去。我是拉了一個button控件。
然后我改了一下背景色和控件的背景色。
全部代碼如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;

namespace SmartClient1
{
/// <summary>
/// UserControl1 的摘要說明。
/// </summary>
public class UserControl1 : System.Windows.Forms.UserControl
{
private System.Windows.Forms.Button button1;
/// <summary>
/// 必需的設計器變量。
/// </summary>


public UserControl1()
{
// 該調用是 Windows.Forms 窗體設計器所必需的。
InitializeComponent();

// TODO: 在 InitializeComponent 調用后添加任何初始化

}



#region 組件設計器生成的代碼
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器
/// 修改此方法的內容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.BackColor = System.Drawing.Color.Teal;
this.button1.Location = new System.Drawing.Point(352, 112);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "button1";
//
// UserControl1
//
this.BackColor = System.Drawing.Color.PaleTurquoise;
this.Controls.Add(this.button1);
this.Name = "UserControl1";
this.Size = new System.Drawing.Size(456, 150);
this.ResumeLayout(false);

}
#endregion
}
}

好了編譯一下。(我是把它編程成DLL文件)
下一步我們來建立調用它的html頁。
要建之前我在D盤新建了一個文件夾,并把這個文件夾在IIS里設置成為虛擬目錄:“SmartClient”。
然后在我剛才的新建文件夾里再新建一個a.htm文件和一個“bin”文件夾(來放我剛才編譯好的DLL文件)。
然后把剛才編譯好的DLL文件復到這個“bin”文件夾里。
a.htm文件的代碼如下:
<html>
<head>
<title>Window控件在Web的試</title>
</head>
<body >
<object id="obj1" classid="http:bin/SmartClient1.dll#SmartClient1.UserControl1" VIEWASTEXT>

</object>
</body>
</html>
//http:bin/SmartClient1.dll#SmartClient1.UserControl1的意思,我在引用的文件里有說明,大家可以參考。而且剛才也應該看了。
好了。現在可以打開“http://localhost/SmartClient/a.htm”試一下:)
效果圖如下:



那現在我們更多回一點兒內容上去:
新建一個窗體文件,把窗體文件通過剛才那個按鈕控件點出來。(我剛才把Form1.cs給刪了,我只得重建一個。)
代碼基本上沒有改動。
只是給Button1加了一個單擊事件:
this.button1.Click += new System.EventHandler(this.button1_Click);

private void button1_Click(object sender, System.EventArgs e)
{
new Form1().Show();
}
新建的窗體文件我什么代碼都沒有加也沒有減,原樣。所以這里就不放代碼了。

再編譯一下。把DLL文件復到過去。記得把原來的刪掉先。或是蓋了它。
然后把原來的網頁關掉。因為DLL換了一個WEB頁一定要清理掉原來的緩存。所以得新開一張新的IE。
在打開新的IE里。不要選地址欄里智能顯示給你的歷史地址。那樣你還只是會加載原來的控件,因為它還留在歷史緩存里。

好,現在試一下看!成功了。我點那個按鈕,那個Window窗體出現了(你覺得這意味著什么?)。
效果圖如下:




至于開發者大會上講的那個智能客戶端我就不講了。不過里面有一個小小的問題(上次我看過的一篇文章里也講過)。我講一下。就是你在WEB上點那個.exe文件時,會被下載工具給弄到下載列表里了。而你只能把下載工具給刪掉:)

通過我上講的用一個放在WEB上的控件來運于一個Window的辦法,或許可以試試。就是在WEB上做一上啟運控件,來啟動這個系統。
你可以起動一個窗體,也可以起動一個exe線程(這個我在WEB里沒有試過,而我又忘了如何啟動所以在這之前我也沒有辦法試)。
至于.net framework安全配置方面。因為網上已經有一些非常好的文章了。我就不講了,而且上面引用的文件里也說到過。之后我會在我的Bolg里貼出它們的URI。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 丁香花在线影院观看在线播放| 日韩 欧美 视频| 99视频在线视频| 乱子伦视频在线看| 日韩av在线播放不卡| 99热这里只有精品在线播放| 无码人妻精品一区二区蜜桃百度| 青娱乐精品在线| 国产一级特黄a大片免费| 成人一级生活片| 日本在线一二三区| 成人免费在线小视频| 国产1区2区在线| 一级黄色大片儿| 女性隐私黄www网站视频| 色偷偷中文字幕| 亚洲黄色a v| 北条麻妃在线视频| 日韩最新中文字幕| 国产精品自在自线| 妞干网在线观看视频| 五月花丁香婷婷| 91黄色小网站| 浮妇高潮喷白浆视频| 激情六月天婷婷| 国产精品va在线观看无码| 国产精品嫩草影视| 国产97色在线 | 日韩| 欧美性视频在线播放| 久久这里只有精品23| 国产肉体ⅹxxx137大胆| 日本精品免费在线观看| 免费观看黄色的网站| 国产成人亚洲综合无码| 91丝袜超薄交口足| 999这里有精品| 久久视频免费在线| 日韩激情视频一区二区| 日韩一级免费在线观看| 成人黄色一区二区| 中文字幕免费高清在线| 欧美精品久久久久久久免费| 久久这里只有精品8| 最新免费av网址| 少妇无码av无码专区在线观看| 国产97色在线 | 日韩| 五月婷婷之婷婷| 国产最新免费视频| 成人国产在线看| 三上悠亚av一区二区三区| 日韩福利视频在线| 99在线免费视频观看| 日韩av卡一卡二| 精品无码国产一区二区三区av| 国产精品igao网网址不卡| 日韩成人av免费| 天天爽人人爽夜夜爽| 亚洲午夜精品久久久久久人妖| 国产91美女视频| 国产视频一区二区视频| 日本一二区免费| 天天操天天爱天天爽| 国产精品乱码久久久久| 国产网站免费在线观看| 一起操在线视频| 最新中文字幕免费视频| 天天干天天操天天做| 一区二区三区欧美精品| 国产av天堂无码一区二区三区| 男生操女生视频在线观看| 欧洲熟妇精品视频| 久久久精品麻豆| 国产性生交xxxxx免费| 中文字幕第50页| 老司机av福利| 欧美精品卡一卡二| wwwwwxxxx日本| 久草青青在线观看| 日本福利视频网站| 一本色道久久亚洲综合精品蜜桃 | 免费黄色日本网站| 天天干天天色天天干| 777av视频| 伊人国产在线视频| 国产白丝袜美女久久久久| 一级黄色在线播放| 91看片就是不一样| 日本成人性视频| www.精品在线| a级黄色小视频| 老司机av福利| 色www免费视频| 久久久999视频| 欧美国产在线一区| 国产1区2区3区中文字幕| 五月天丁香花婷婷| 欧美亚洲视频一区| 免费黄频在线观看| 在线观看日本www| 五月天视频在线观看| www日韩在线观看| 各处沟厕大尺度偷拍女厕嘘嘘| 黄色影视在线观看| 二级片在线观看| 成人免费毛片网| 成人免费黄色av| 国产特级黄色大片| 无码无遮挡又大又爽又黄的视频| 虎白女粉嫩尤物福利视频| 在线免费观看视频黄| 污污网站在线观看视频| 国产福利视频在线播放| 免费日韩中文字幕| 怡红院亚洲色图| 黑人巨大国产9丨视频| 久久久国产欧美| 免费av手机在线观看| 国产免费中文字幕| 国产成人黄色片| 国产一区 在线播放| 亚洲午夜无码av毛片久久| 天天干天天玩天天操| caopor在线视频| 国产色一区二区三区| 国产av不卡一区二区| 丝袜老师办公室里做好紧好爽| 亚洲高清av一区二区三区| 亚欧美在线观看| 一区二区三区免费播放| 激情五月婷婷六月| 亚洲精品偷拍视频| 在线播放黄色av| 国产又粗又爽又黄的视频| 中文国产在线观看| 日本黄色福利视频| 欧美牲交a欧美牲交aⅴ免费真 | 青青青青草视频| 国产日本在线播放| 五月天av在线播放| 日韩爱爱小视频| 高清欧美精品xxxxx| 精品久久久久久久无码| 欧美日韩国产精品激情在线播放| jizzjizz国产精品喷水| 午夜精品久久久久久久无码| 每日在线更新av| 国产免费xxx| 毛葺葺老太做受视频| 福利片一区二区三区| 欧美大片久久久| 天天色天天综合网| 手机看片一级片| 日本天堂免费a| 日本黄网站色大片免费观看| 麻豆tv在线播放| 欧美一级黄色录像片| 欧美 日韩 国产在线观看| 国产精品无码专区av在线播放| 人妻精品无码一区二区三区| 亚洲视频第二页| 永久免费看av| 黄色影院一级片| 欧美国产日韩另类| 国产一区亚洲二区三区| 老司机久久精品| 六月激情综合网| 97xxxxx| 黄色一级大片免费| av免费中文字幕| 熟女视频一区二区三区| 天天色综合天天色| wwwxxx黄色片| 免费av网址在线| 777久久久精品一区二区三区| 国产黄色激情视频| 亚洲色图久久久| 青青草av网站| 色婷婷综合在线观看| 亚洲制服在线观看| 无遮挡又爽又刺激的视频| 日韩中文字幕二区| 中文字幕欧美人妻精品一区| 337p粉嫩大胆噜噜噜鲁| 亚洲一级片免费| 欧美久久久久久久久久久久久久| 特黄特黄一级片| 乱人伦xxxx国语对白| 黄色一级大片在线观看| 日韩高清第一页| 日韩欧美猛交xxxxx无码| 久久视频这里有精品| 久久亚洲国产成人精品无码区| 毛片在线视频播放| 五月天国产视频| 青青草av网站| 成人午夜免费在线视频| 国产无限制自拍| 捷克做爰xxxⅹ性视频| 国产在线青青草| 大陆极品少妇内射aaaaaa|