久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

VS2010 C#創(chuàng)建ActiveX控件

 昵稱11482448 2013-08-06

VS2010 C#創(chuàng)建ActiveX控件

1,、File-->New-->Project,彈出 New Project窗口;

2、在左邊的 Installed Templates -->Visual C#-->Windows中,,選擇Class Library,,輸入名字(name):HelloWorld,選擇項目保存路徑(Location):F:\donetProject, Solution: Create new solution ,如下圖:

1

3刪除自動創(chuàng)建的Class1.cs文件,,然后在HelloWorld上右鍵->添加->新建項,在彈出的窗口中選擇

戶控件,,名稱為Demo,,此時會出現(xiàn)一個類似于winform設(shè)計界面,我們在上面從工具箱中拖動一個Label在上面,,并設(shè)定LabelText"HelloWorld",。

  

Add New Item(Visual C# Items – User Control),在name中輸入Demo

 

4,、畫ActiveX界面:

5、在菜單中:Project HelloWorld Properties,,Application頁面,,點擊Assembly Information

6HelloWorld(用戶控件)項目上點擊右鍵,,選擇屬性,,將打開項目屬性面板,選擇應(yīng)用程序標(biāo)簽頁,,點擊程序集信息按鈕,,在彈出的窗口中勾選使程序集COM可見 (Make assembly COM-Visible) ;

7切換到生成(Build)標(biāo)簽頁,然后勾選Com互操作注冊(Register for COM interop),,在該頁面的最上面,,有一個配置選項,切換到realse,,并再次勾選Com互操作注冊 (Register for COM interop),。這樣無論是在debug還是在release狀態(tài)下,都可以把用戶控件當(dāng)做com接口使用,。如下圖,。(如果不使用realse模式,realse可以不設(shè)置,。)

 

8,、在目錄(F:\donetProject\HelloWorld\HelloWorld\bin\Debug)中增加一個html文件:HelloWorld.html,內(nèi)容如下:

  1. <body bgcolor='#ABCABC'>  
  2.   
  3. <object id="helloworld" classid="clsid:7004C725-9039-3FD7-9E55-9399F64072CE" Width="500" Height="500" >  
  4.   
  5.        <param name="UserText" value="Mycomputer">  
  1. </object>  
  2.   
  3. <br>   
  4.   
  5. <input type='button' onclick='helloworld.ShowMessage("Hello World!")' value='Click'>   
  6.   
  7. </body>  


9、在 OLE/COM Object Viewer,只需要在“OLE/COM對象查看器中點Grouped by Component Category->.Net Category->點擊你編寫的類庫名.用戶控件類查看(HelloWorld.Demo),在該節(jié)點上右鍵,,Copy CLSID to ClipBoard ;

 

復(fù)制CLSID,,把 HelloWorld.htmlclassid="clsid:7004C725-9039-3FD7-9E55-9399F64072CE"修改為復(fù)制的CLSID

 

10、點擊運(yùn)行(F5),即可彈出IE瀏覽器,,進(jìn)行調(diào)試,;

11,、C# 2010ActiveX中讀取Html中參數(shù)初始化,,程序參數(shù):

   A、定義一個接口:AxMyControl

  

  1. public interface AxMyControl {  
  2.        String UserName { setget; }  
  3.        String UserPass { setget; }  
  4.        int   UserId { setget; }  
  5.    }  

   B,、Demo class實現(xiàn)AxMyControl接口,,

Demo定義個屬性

 

 

  1. private string userName ,;  
  2. private string userPass ;  
  3. private int userId ,;  
  4. public int UserId{  
  5.             get { return userId; }  
  6.             set { userId = value; }  
  7.         }  
  8.   
  9.         public string UserName{  
  10.             get  
  11.             {  
  1.        return userName;              
  2.    }  
  3.   
  4.    set  
  5.    {  
  6.        userName = value;  
  7.        TB_Name.Text = value;  
  8.    }  
  9.   
  10.   
  11.   
  12. public string UserPass{  
  13.    get  
  14.    {  
  15.        return userPass;  
  16.    }  
  17.    set      
  1.     {  
  2.         userPass = value;  
  3.         TB_Pass.Text = value;  
  4.     }  
  5. }  

修改HelloWorld.html為:

 

  1. <body bgcolor='#ABCABC'>  
  2. <object id="helloworld" classid="clsid:7004C725-9039-3FD7-9E55-9399F64072CE" Width="500" Height="500" >   
  3.        <param name="userName" value="UserName"/>  
  4.        <param name="userPass" value="UserPass"/>  
  5.        <param name="userId" value="123" >      
  6. </object>  
  7. <br>   
  8. </body>  
  9.   
  10.    

 

運(yùn)行即可看到參數(shù) 

12,、在html中訪問ActiveX中的方法:

Demo  class中增加方法:

 

  1. public void ShowMessage(String value) {  
  2.             MessageBox.Show(value);  
  3.         }  
  4.    

修改HelloWorld.html為:

 

  1. <body bgcolor='#ABCABC'>  
  2. <object id="helloworld" classid="clsid:7004C725-9039-3FD7-9E55-9399F64072CE" Width="500" Height="500" >   
  3.        <param name="userName" value="UserName"/>  
  4.        <param name="userPass" value="UserPass"/>  
  5.        <param name="userId" value="123" >        
  6. </object>  
  7. <br>   
  8. <input type='button' onclick='helloworld.ShowMessage("Hello World!")' value='Click'>   
  9. </body>  
  10.   
  11.    

點擊Click按鈕即可彈出信息;

 

基本完成

 

完整代碼如下:

 

  1. Demo.cs   
  2.   
  3.    
  4.   
  5. using System;  
  6. using System.Collections.Generic;  
  7. using System.ComponentModel;  
  8. using System.Drawing;  
  9. using System.Data;  
  10. using System.Linq;  
  11. using System.Text;  
  1. using System.Windows.Forms;  
  2.   
  3. namespace HelloWorld  
  4. {  
  5.   
  6.     public interface AxMyControl {  
  7.         String UserName { setget; }  
  8.         String UserPass { setget; }  
  9.     }   
  10.   
  11.     public partial class Demo : UserControl , AxMyControl  
  12.     {  
  13.         private string userName;  
  14.         private string userPass;  
  15.         private int userId;  
  16.         public int UserId  
  17.         {  
  18.             get { return userId; }  
  19.             set { userId = value; }  
  20.         }   
  21.   
  22.         public Demo()  
  23.         {  
  24.             InitializeComponent();  
  25.         }   
  26.   
  27.         public string UserName  
  28.         {  
  29.             get  
  30.             {  
  31.                 return userName;               
  32.             }  
  33.   
  34.             set  
  35.             {  
  36.                 userName = value;  
  37.                 TB_Name.Text = value;  
  38.             }  
  39.   
  40.         }   
  41.   
  42.         public string UserPass  
  43.         {  
  44.             get{  
  45.                 return userPass;  
  46.             }  
  47.   
  48.             set{  
  49.                 userPass = value;  
  50.                 TB_Pass.Text = value;  
  51.             }  
  52.   
  53.         }   
  54.   
  55.         public void ShowMessage(String value) {  
  56.             MessageBox.Show(value);  
  57.         }  
  58.   
  59.         private void B_Ok_Click(object sender, EventArgs e)  
  60.         {  
  61.             MessageBox.Show(UserId + "--" + UserName);  
  62.         }  
  63.   
  64.    
  65.   
  66.         ///<ê?summary>ê?   
  67.   
  68.         ///清?理¤¨a所¨′有?D正y在¨2使o1用??的ì?資á¨o源??,。?ê  
  69.   
  70.         ///<ê?/summary>ê?  
  71.         public override void Dispose(bool disposing) {  
  72.             if (disposing)  
  73.             {  
  74.                 if (components != null)  
  75.                 {  
  76.                     components.Dispose();  
  77.                 }  
  78.            }  
  79.             base.Dispose(disposing);  
  80.   
  81.         }  
  82.   
  83.     }  
  84.   
  85. }  
  86.   
  87. AssemblyInfo.cs   
  88.    
  89.   
  90. using System.Reflection;  
  91. using System.Runtime.CompilerServices;  
  92. using System.Runtime.InteropServices;  
  93. using System.Security ;  
  94.    
  95.   
  96. // General Information about an assembly is controlled through the following   
  97. // set of attributes. Change these attribute values to modify the information  
  98. // associated with an assembly.  
  99. [assembly: AssemblyTitle("HelloWorld")]  
  100. [assembly: AssemblyDescription("")]  
  101. [assembly: AssemblyConfiguration("")]  
  102. [assembly: AssemblyCompany("ABC")]  
  103. [assembly: AssemblyProduct("HelloWorld")]  
  104. [assembly: AssemblyCopyright("Copyright ? ABC? 2012")]  
  105. [assembly: AssemblyTrademark("")]  
  106. [assembly: AssemblyCulture("")]  
  107.    
  108.   
  109. // Setting ComVisible to false makes the types in this assembly not visible   
  110. // to COM components.  If you need to access a type in this assembly from   
  111. // COM, set the ComVisible attribute to true on that type.  
  112. [assembly: ComVisible(true)]  
  113. // The following GUID is for the ID of the typelib if this project is exposed to COM  
  114.   
  115. [assembly: Guid("8cc6c007-781e-4672-a79d-7ceb2bd678bb")]  
  116.   
  117. // Version information for an assembly consists of the following four values:  
  118. //  
  119. //      Major Version  
  120. //      Minor Version   
  121. //      Build Number  
  122. //      Revision  
  123. //  
  124.   
  125. // You can specify all the values or you can default the Build and Revision Numbers   
  126. // by using the '*' as shown below:  
  127. // [assembly: AssemblyVersion("1.0.*")]  
  128. [assembly: AssemblyVersion("1.0.0.0")]  
  129. [assembly: AssemblyFileVersion("1.0.0.0")]   
  130.   
  131. //設(shè)|¨¨置?控?件t的ì?權(quán)¨?§限T  
  132.   
  133. [assembly: AllowPartiallyTrustedCallers]  
  134.   
  135.     
  136.   
  137. Demo.Designer.cs(此源碼有C#自動生成,,自己在Form上畫界面,自動生成)  
  138. namespace HelloWorld  
  139. {  
  140.    partial class Demo  
  141.     {  
  142.        ///<summary>  
  143.         /// Required designer variable.  
  144.         ///</summary>  
  145.         private System.ComponentModel.IContainer components = null;  
  146.         ///<summary>  
  147.        /// Clean up any resources being used.  
  148.         ///</summary>  
  149.   
  150.        ///<param name="disposing">true if managed resources should be disposed; otherwise, false.</param>  
  151.   
  152.         protected override void Dispose(bool disposing)  
  153.   
  154.         {  
  155.             if (disposing && (components != null))  
  156.             {  
  157.                 components.Dispose();  
  158.             }  
  159.   
  160.             base.Dispose(disposing);  
  161.   
  162.         }  
  163.  
  164.          #region Component Designer generated code  
  165.   
  166.         ///<summary>  
  167.         /// Required method for Designer support - do not modify   
  168.         /// the contents of this method with the code editor.  
  169.         ///</summary>  
  170.   
  171.         private void InitializeComponent()  
  172.         {  
  173.             this.L_Str = new System.Windows.Forms.Label();  
  174.             this.L_Name = new System.Windows.Forms.Label();  
  175.             this.L_Pass = new System.Windows.Forms.Label();  
  176.             this.TB_Name = new System.Windows.Forms.TextBox();  
  177.             this.TB_Pass = new System.Windows.Forms.TextBox();  
  178.             this.B_Ok = new System.Windows.Forms.Button();  
  179.             this.SuspendLayout();  
  180.             //   
  181.             // L_Str  
  182.             //   
  183.   
  184.             this.L_Str.AutoSize = true;  
  185.             this.L_Str.Font = new System.Drawing.Font("KaiTi_GB2312", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));  
  186.             this.L_Str.Location = new System.Drawing.Point(153, 25);  
  187.             this.L_Str.Name = "L_Str";  
  188.             this.L_Str.Size = new System.Drawing.Size(189, 29);  
  189.             this.L_Str.TabIndex = 0;  
  190.             this.L_Str.Text = "Hello World";  
  191.             //   
  192.             // L_Name  
  193.             //   
  194.             this.L_Name.AutoSize = true;  
  195.             this.L_Name.Location = new System.Drawing.Point(82, 92);  
  196.             this.L_Name.Name = "L_Name";  
  197.             this.L_Name.Size = new System.Drawing.Size(53, 12);  
  198.             this.L_Name.TabIndex = 1;  
  199.             this.L_Name.Text = "用戶名:";  
  200.             //   
  201.             // L_Pass  
  202.             //   
  203.             this.L_Pass.AutoSize = true;  
  204.             this.L_Pass.Location = new System.Drawing.Point(82, 124);  
  205.             this.L_Pass.Name = "L_Pass";  
  206.             this.L_Pass.Size = new System.Drawing.Size(53, 12);  
  207.             this.L_Pass.TabIndex = 2;  
  208.             this.L_Pass.Text = "密  碼:";  
  209.             //   
  210.             // TB_Name  
  211.             //   
  212.             this.TB_Name.Location = new System.Drawing.Point(152, 83);  
  213.             this.TB_Name.Name = "TB_Name";  
  214.             this.TB_Name.Size = new System.Drawing.Size(190, 21);  
  215.             this.TB_Name.TabIndex = 3;  
  216.             //   
  217.             // TB_Pass  
  218.             //   
  219.             this.TB_Pass.Location = new System.Drawing.Point(152, 115);  
  220.             this.TB_Pass.Name = "TB_Pass";  
  221.             this.TB_Pass.Size = new System.Drawing.Size(190, 21);  
  222.             this.TB_Pass.TabIndex = 4;  
  223.             //   
  224.             // B_Ok  
  225.             //   
  226.             this.B_Ok.Location = new System.Drawing.Point(345, 183);  
  227.             this.B_Ok.Name = "B_Ok";  
  228.             this.B_Ok.Size = new System.Drawing.Size(90, 29);  
  229.             this.B_Ok.TabIndex = 5;  
  230.             this.B_Ok.Text = "確認(rèn)";  
  231.             this.B_Ok.UseVisualStyleBackColor = true;  
  232.             this.B_Ok.Click += new System.EventHandler(this.B_Ok_Click);  
  233.             //   
  234.             // Demo  
  235.             //   
  236.             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);  
  237.             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;  
  238.             this.Controls.Add(this.B_Ok);  
  239.             this.Controls.Add(this.TB_Pass);  
  240.             this.Controls.Add(this.TB_Name);  
  241.             this.Controls.Add(this.L_Pass);  
  242.             this.Controls.Add(this.L_Name);  
  243.             this.Controls.Add(this.L_Str);  
  244.             this.Name = "Demo";  
  245.             this.Size = new System.Drawing.Size(521, 276);  
  246.             this.ResumeLayout(false);  
  247.             this.PerformLayout();  
  248.   
  249.         }  
  250.  
  251.         #endregion   
  252.   
  253.         private System.Windows.Forms.Label L_Str;  
  254.         private System.Windows.Forms.Label L_Name;  
  255.         private System.Windows.Forms.Label L_Pass;  
  256.         private System.Windows.Forms.TextBox TB_Name;  
  257.         private System.Windows.Forms.TextBox TB_Pass;  
  258.         private System.Windows.Forms.Button B_Ok;  
  259.   
  260.     }  
  261.   
  262. }  
  263.   
  264.    

HelloWorld.html 內(nèi)容如下:

  1. <body bgcolor='#ABCABC'>  
  2. <object id="helloworld" classid="clsid:7004C725-9039-3FD7-9E55-9399F64072CE" Width="500" Height="500" >   
  3.     <param name="userName" value="UserName"/>  
  4.     <param name="userPass" value="UserPass"/>  
  5.     <param name="userId" value="123" >  
  6. </object>  
  7. <br>   
  8. <input type='button' onclick='helloworld.ShowMessage("Hello World!")' value='Click'>   
  9.   
  10. </body>  

 

在最后一個加載的param中做初始化事情,,比如

public string UserPass {

       get{ return userPass; }

      set{ userPass = value;

        TB_Pass.Text = value; 

         這里做初始化事情 ,;需要運(yùn)行一次,看看那個set方法是最后加載的,,以防止之前的參數(shù)沒加載,,而會使用它的情況;  

   }

}

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多