国产97色在线|亚洲-欧美人妻另类制服丝袜-欧美人成国产91视频-殷素素一女战二夫|www.ycjrc.net

將 UserControl 創建為設計時控件容器

發布時間:2016-12-28 21:22 作者:獨孤劍 閱讀:1174

概要
本分步指南介紹在將 UserControl 放在 Windows 窗體上之后,如何將 UserControl 對象用作設計時控件容器。可能會有這樣的情況:您想將一個控件拖到UserControl 中。為做到這一點, UserControl 必須用作控件容器。

概述


默認情況下,UserControl 對象只有在您創建它時才可以用作控件容器。在將 UserControl 放在 Windows 窗體上之后,為讓 UserControl 承載構成控件,您必須更改 UserControl 的默認設計器。如要為一個組件實現設計時服務,請使用 System.ComponentModel 名稱空間的 DesignerAttribute類。DesignerAttribute 出現在類聲明前面。通過傳遞 designerTypeName 和 DesignerAttribute 參數初始化 designerTypeName

designerTypeName 是提供設計時服務的設計器類型的完全合格的名稱。傳遞 designerTypeName 參數的System.Windows.Forms.Design.ParentControlDesigner 和 System.Design 的組合。ParentControlDesigner 類擴展了 UserControl 的設計時行為。

designerBaseType 是設計器的基類的名稱。用于設計時服務的類必須實現 IDesigner 接口。


將 UserControl 創建為設計時控件容器

  1. 創建一個新的 Visual C# .NET Windows 控件庫項目。為此,請按照下列步驟操作:
    1. 啟動 Visual Studio .NET。
    2. 在“文件”菜單上,指向“新建”,然后單擊“項目”。
    3. 在“項目類型”下,單擊 “Visual C# 項目”,然后單擊“模板”下的 “Windows 控件庫”。
  2. 將該項目命名為 ContainerUserControl。默認情況下將創建出 “UserControl1.cs”。
  3. 在解決方案資源管理器中,右鍵單擊 “UserControl1.cs”,然后單擊“查看代碼”。
  4. 將下面的代碼添加到 Declarations 部分:
    using System.ComponentModel.Design;
  5. 如下所示將 System.ComponentModel.DesignerAttribute 屬性應用到該控件:
    [Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))] public class UserControl1 :System.Windows.Forms.UserControl { ...}
  6. 在“生成”菜單上,單擊“生成解決方案”。


測試 UserControl

  1. 創建一個新的 Visual C# 項目。為此,請按照下列步驟操作:
    1. 啟動 Visual Studio .NET。
    2. 在“文件”菜單上,指向“新建”,然后單擊“項目”。
    3. 在“項目類型”下,單擊 “Visual C# 項目”,然后單擊“模板”下的 “Windows 應用程序”。默認情況下將創建出 “Form1.cs”。
  2. 將 “UserControl1” 從工具箱(在“Windows 窗體”下)拖到 “Form1.cs”。
  3. 將一個按鈕控件從工具箱拖到 “UserControl1”。
  4. 您會注意到 “UserControl1” 起到了按鈕控件的控件容器的作用。



示例:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.ComponentModel.Design;

namespace WindowsFormsApplication20
{
    [Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
    public partial class UserControl1 : System.Windows.Forms.UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }
    }

}

微信打賞, 微信掃一掃

支付寶打賞, 支付寶掃一掃

如果文章對您有幫助,歡迎給作者打賞

作者最新文章
開發過程中解決360兼容模式瀏覽器的方法
云南象群向西南方向遷移,云南離群獨象距離象群約12公里
吉林做網站最低價格,吉林企業網站建設價格低至500元起
守象人直擊云南象群最新動向
網站影響百度蜘蛛抓取量的因素有哪些?為什么我的網站Baidu蜘蛛來的次數少?
企業名片
在線客服