⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multipagedesigner.cs

📁 浏览器端看到树型目录结构,用户可以完整地看到像windows资源管理器一样的效果
💻 CS
字号:
//------------------------------------------------------------------------------
// Copyright (c) 2000-2003 Microsoft Corporation. All Rights Reserved.
//------------------------------------------------------------------------------

namespace Microsoft.Web.UI.WebControls.Design
{
    using System;
    using System.Web.UI.Design;
    using System.ComponentModel;
    using System.ComponentModel.Design;
    using System.Web.UI.WebControls;
    using Microsoft.Web.UI.WebControls;

    /// <summary>
    /// Designer class for Microsoft.Web.UI.WebControls.MultiPage
    /// </summary>
    public class MultiPageDesigner : ControlDesigner
    {
        private int _SelectedIndex = -1;
        private DesignerVerbCollection _Verbs;

        /// <summary>
        /// The index of the currently visible page
        /// </summary>
        protected int SelectedIndex
        {
            get { return _SelectedIndex; }
            set
            {
                _SelectedIndex = value;
                UpdateDesignTimeHtml();
            }
        }

        /// <summary>
        /// Called when switching to the next page.
        /// </summary>
        /// <param name="sender">Sender object</param>
        /// <param name="e">Event arguments</param>
        public virtual void OnNextPage(object sender, EventArgs e)
        {
            MultiPage multiPage = (MultiPage)Component;
            if (SelectedIndex < (multiPage.Controls.Count - 1))
            {
                SelectedIndex++;
            }
        }

        /// <summary>
        /// Called when switching to the previous page.
        /// </summary>
        /// <param name="sender">Sender object</param>
        /// <param name="e">Event arguments</param>
        public virtual void OnPrevPage(object sender, EventArgs e)
        {
            MultiPage multiPage = (MultiPage)Component;
            if ((SelectedIndex > 0) && (multiPage.Controls.Count > 0))
            {
                SelectedIndex--;
            }
        }

        /// <summary>
        /// Called when a part of the component is changing.
        /// </summary>
        /// <param name="sender">Sender object</param>
        /// <param name="ce">Event arguments</param>
        public override void OnComponentChanged(object sender, ComponentChangedEventArgs ce)
        {
            base.OnComponentChanged(sender, ce);

            PropertyDescriptor selIndexDesc = DesignUtil.GetPropertyDescriptor(Component, "SelectedIndex");
            if ((selIndexDesc != null) && (ce.Member == selIndexDesc))
            {
                SelectedIndex = (int)ce.NewValue;
                UpdateDesignTimeHtml();
            }
        }

        /// <summary>
        /// Collection of actions that can be performed on the component.
        /// </summary>
        public override DesignerVerbCollection Verbs
        {
            get
            {
                if (_Verbs == null)
                {
                    string prevPage = DesignUtil.GetStringResource("MultiPageShowPrevPage");
                    string nextPage = DesignUtil.GetStringResource("MultiPageShowNextPage");

                    _Verbs = new DesignerVerbCollection(
                        new DesignerVerb[]
                        {
                            new DesignerVerb(prevPage, new EventHandler(OnPrevPage)),
                            new DesignerVerb(nextPage, new EventHandler(OnNextPage)),
                        }
                    );
                }

                return _Verbs;
            }
        }

        /// <summary>
        /// Retrieves the HTML to display in the designer.
        /// </summary>
        /// <returns>HTML for the designer.</returns>
        public override string GetDesignTimeHtml()
        {
            string html;
            MultiPage multiPage = (MultiPage)Component;
            int realIndex = 0;

            if (multiPage.Controls.Count == 0)
            {
                // Add a message if the MultiPage is empty
                return CreatePlaceHolderDesignTimeHtml(DesignUtil.GetStringResource("MultiPageNoItems"));
            }

            realIndex = multiPage.SelectedIndex;
            if (_SelectedIndex < 0)
            {
                _SelectedIndex = realIndex;
            }
            multiPage.SelectedIndex = _SelectedIndex;

            try
            {
                html = base.GetDesignTimeHtml();
            }
            finally
            {
                // Restore the component
                multiPage.SelectedIndex = realIndex;
            }

            return html;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -