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

📄 class1.cs

📁 對c#初學者參考..為課題asp.net 2.0教材代碼
💻 CS
字号:
public class MultiRegionControlDesigner : CompositeControlDesigner
{

    protected int _currentView = 0;

    private MultiRegionControl myControl;
    public override void Initialize(IComponent component)
    {
        base.Initialize(component);
        myControl = (MultiRegionControl)component;
    }

    public override bool AllowResize { get { return true; } }

    protected override void OnClick(DesignerRegionMouseEventArgs e)
    {
        if (e.Region == null)
            return;

        if (e.Region.Name == "Header0" && _currentView != 0)
        {
            _currentView = 0;
            UpdateDesignTimeHtml();
        }

        if (e.Region.Name == "Header1" && _currentView != 1)
        {
            _currentView = 1;
            UpdateDesignTimeHtml();
        }
    }

    public override String GetDesignTimeHtml(DesignerRegionCollection regions)
    {
        BuildRegions(regions);
        return BuildDesignTimeHtml();
    }

    protected virtual void BuildRegions(DesignerRegionCollection regions)
    {
        regions.Add(new DesignerRegion(this, "Header0"));
        regions.Add(new DesignerRegion(this, "Header1"));

        // If the current view is for all, we need another editable region
        EditableDesignerRegion edr0 = new
            EditableDesignerRegion(this, "Content" + _currentView, false);
        edr0.Description = "Add stuff in here if you dare:";
        regions.Add(edr0);

        // Set the highlight, depending upon the selected region
        if (_currentView == 0 || _currentView == 1)
            regions[_currentView].Highlight = true;
    }

    protected virtual string BuildDesignTimeHtml()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append(BuildBeginDesignTimeHtml());
        sb.Append(BuildContentDesignTimeHtml());
        sb.Append(BuildEndDesignTimeHtml());

        return sb.ToString();
    }

    protected virtual String BuildBeginDesignTimeHtml()
    {
        // Create the table layout
        StringBuilder sb = new StringBuilder();
        sb.Append("<table ");

        // Styles that we'll use to render for the design-surface
        sb.Append("height='" + myControl.Height.ToString() + "' width='" +
            myControl.Width.ToString() + "'>");

        // Generate the title or caption bar
        sb.Append("<tr height='25px' align='center' " +
            "style='font-family:tahoma;font-size:10pt;font-weight:bold;'>" +
            "<td style='width:50%' " + DesignerRegion.DesignerRegionAttributeName +
            "='0'>");
        sb.Append("Page-View 1</td>");
        sb.Append("<td style='width:50%' " +
            DesignerRegion.DesignerRegionAttributeName + "='1'>");
        sb.Append("Page-View 2</td></tr>");

        return sb.ToString();
    }

    protected virtual String BuildEndDesignTimeHtml()
    {
        return ("</table>");
    }

    protected virtual String BuildContentDesignTimeHtml()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("<td colspan='2' style='");
        sb.Append("background-color:" + myControl.BackColor.Name.ToString() +
            ";' ");

        sb.Append(DesignerRegion.DesignerRegionAttributeName + "='2'>");

        return sb.ToString();
    }

    public override string GetEditableDesignerRegionContent
        (EditableDesignerRegion region)
    {
        IDesignerHost host =
            (IDesignerHost)Component.Site.GetService(typeof(IDesignerHost));

        if (host != null)
        {
            ITemplate template = myControl.View1;

            if (region.Name == "Content1")
                template = myControl.View2;

            if (template != null)
                return ControlPersister.PersistTemplate(template, host);
        }

        return String.Empty;
    }

    public override void SetEditableDesignerRegionContent
         (EditableDesignerRegion region, string content)
    {
        int regionIndex = Int32.Parse(region.Name.Substring(7));

        if (content == null)
        {
            if (regionIndex == 0)
                myControl.View1 = null;
            else if (regionIndex == 1)
                myControl.View2 = null;
            return;
        }

        IDesignerHost host =
            (IDesignerHost)Component.Site.GetService(typeof(IDesignerHost));

        if (host != null)
        {
            ITemplate template = ControlParser.ParseTemplate(host, content);

            if (template != null)
            {
                if (regionIndex == 0)
                    myControl.View1 = template;
                else if (regionIndex == 1)
                    myControl.View2 = template;
            }
        }
    }
}

⌨️ 快捷键说明

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