首页 > 其他分享 >winform--分页控件

winform--分页控件

时间:2024-07-22 15:21:12浏览次数:6  
标签:控件 sender -- CurrentPageControl private label int Label winform

新建一个用户组件,直接上代码:

    /*
     * 作者:pengyan zhang
     * 邮箱:[email protected]
     * 博客:https://www.cnblogs.com/zpy1993-09
     * 时间:2024-04-12 18:36
     */
    public partial class CPPageComponent : FlowLayoutPanel
    {
        #region 事件
        /// <summary>
        /// 委托
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public delegate void CPPageEventHandler(object sender, PageEventArgs e);
        /// <summary>
        /// 开关状态发生改变时引发的事件
        /// </summary>
        public event CPPageEventHandler PageEvent;
        #endregion
        /// <summary>
        /// 当点击某一页被选中时
        /// </summary>
        [Category("SimpleUI"), Description("被选中时的背景颜色"), DefaultValue(typeof(Color), "0, 159, 149")]
        public  Color CP_PageCheckBackColor
        {
            get { return PageCheckBackColor; }
            set { PageCheckBackColor = value; }
        }
        private Color PageCheckBackColor = Color.FromArgb(0, 159, 149);
        /// <summary>
        /// 当某一页未被选中时的背景颜色
        /// </summary>
        [Category("SimpleUI"), Description("未被选中时的背景颜色"), DefaultValue(typeof(Color), "255, 255, 255")]
        public  Color CP_PageUnCheckBackColor
        {
            get { return PageUnCheckBackColor; }
            set { PageUnCheckBackColor = value; }
        }
        private Color PageUnCheckBackColor = Color.FromArgb(255, 255, 255);
        /// <summary>
        /// 当某一页被选中时字体颜色
        /// </summary>
        [Category("SimpleUI"), Description("被选中时的字体颜色"), DefaultValue(typeof(Color), "255, 255, 255")]
        public  Color CP_PageCheckFontColor
        {
            get { return PageCheckBackColor; }
            set { PageCheckBackColor = value; }
        
        }
        private Color PageCheckFontColor= Color.FromArgb(255, 255, 255);
        /// <summary>
        /// 当某一页未被选中的字体颜色
        /// </summary>
        [Category("SimpleUI"), Description("未被选中时的字体颜色"), DefaultValue(typeof(Color), "0, 0,0")]
        public  Color CP_PageUnCheckFontColor
        {
            get { return PageUnCheckBackColor; }
            set { PageUnCheckBackColor = value; }
        }
        private Color PageUnCheckFontColor = Color.FromArgb(0, 0, 0);
        /// <summary>
        /// 当鼠标进入某一页时
        /// </summary>
        [Category("SimpleUI"), Description("鼠标进入时的背景颜色"), DefaultValue(typeof(Color), "224, 224, 224")]
        public  Color CP_ageEneterColor
        {
            get { return PageEneterColor; }
            set { PageEneterColor = value; }
        }
        private Color PageEneterColor= Color.FromArgb(224, 224, 224);
        private Label labelLastPage { get; set; }
        private Label labelNextPage { get; set; }
        private TextBox PageBox { get; set; }
        private Label CurrentPageControl { get; set; }
        private Label labelLeft { get; set; }
        private Label labelRight { get; set; }
        private List<Label> pages {  get; set; }
        private int page { get; set; } = 0;
        private int PageSize { get; set; } = 10;
        private int PageIndex { get; set; } = 1;
        private int SumPage { get; set; }
        private Label label_StartPage { get; set; }
        private Label label_EndPage { get; set; }
        private int[] PageArr { get; set; } = new[] { 10, 20, 50, 100 };
        private FlowLayoutPanel flowLayoutPanel { get; set; }
        private Label Drop { get;set; }
        private Popup pop { get; set; } 
        public CPPageComponent()
        {
            InitializeComponent();
        }
        public CPPageComponent(IContainer container)
        {
            container.Add(this);
            InitializeComponent();
          
        }
        private void page_Painit(object? sender, PaintEventArgs e)
        {
            Control control = sender as Control;
            ControlPaint.DrawBorder(e.Graphics,//获取进行绘制的图形
           new Rectangle(0, 0, control.Width, control.Height),//绘制控件所在工作区域
            Color.FromArgb(224, 224, 224), 1, ButtonBorderStyle.Solid,//边框类型,选择实线边框,也有虚线等种类;下面这四个重复的传参是设置工作区上下左右边框的功能
            Color.FromArgb(224, 224, 224), 1, ButtonBorderStyle.Solid,
            Color.FromArgb(224, 224, 224), 1, ButtonBorderStyle.Solid,
            Color.FromArgb(224, 224, 224), 1, ButtonBorderStyle.Solid);
        }
        protected override void OnResize(EventArgs ea)
        {
            this.Height = 31;
            base.OnResize(ea);
        }
        private void Label_Click(object? sender, EventArgs e)
        {
            var label = sender as Label;
            if ((int)label.Tag == (int)CurrentPageControl.Tag) return;
            int currentpage = (int)label.Tag;
            this.PageIndex= currentpage;
            PrePage(currentpage, label);
        }
        private void label_MouseEnter_Click(object? sender, EventArgs e)
        {
            var label = sender as Label;
            if (CurrentPageControl != label)
            {
                label.Cursor = Cursors.Hand;
                label.BackColor = PageEneterColor;
            }
        }
        private void label_MouseLeave_Click(object? sender, EventArgs e)
        {
            var label = sender as Label;
            if (CurrentPageControl != label) label.BackColor = PageUnCheckBackColor;
        }
        private void Pagebox_TextChanged(object? sender, EventArgs e)
        {
            PageBox.Text = Regex.Replace(PageBox.Text, "[^0-9]", "");
            if (PageBox.Text == "0") PageBox.Text = "";
        }
        private void label_Sure_MouseEnter_Click(object? sender, EventArgs e)
        {
            var label = sender as Label;
            label.Cursor = Cursors.Hand;
            label.BackColor = PageEneterColor;
            label.ForeColor = PageUnCheckFontColor;
        }
        private void label_Sure_MouseLeave_Click(object? sender, EventArgs e)
        {
            var label = sender as Label;
            label.BackColor = PageUnCheckBackColor;
        }
        private void label_Sure_Click(object? sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(PageBox.Text)) return;
            int pageCount = int.Parse(PageBox.Text);
            PageSure(pageCount);
        }
        private void labelNextPage_MouseEnter_Click(object? sender, EventArgs e)
        {
            var label = sender as Label;
            if ((int)CurrentPageControl.Tag == page) label.Cursor = Cursors.No;
            else
            {
                label.Cursor = Cursors.Hand;
                label.BackColor = PageEneterColor;
            }
        }
        private void labelNextPage_MouseLeave_Click(object? sender, EventArgs e)
        {
            var label = sender as Label;
            label.BackColor = PageUnCheckBackColor ;
        }
        private void labelNextPage_Click(object? sender, EventArgs e)
        {
            if ((int)CurrentPageControl.Tag == page)  return;
            if ((int)CurrentPageControl.Tag == page-1 && page > 6)
            {
                CurrentPageControl.BackColor = PageUnCheckBackColor;
                CurrentPageControl.ForeColor = PageUnCheckFontColor;
                CurrentPageControl = label_EndPage;
                CurrentPageControl.BackColor = PageCheckBackColor;
                CurrentPageControl.ForeColor = PageUnCheckFontColor;
                return;
            }
            for (int i = 0; i < pages.Count; i++)
            {
                if ((int)CurrentPageControl.Tag + 1 == (int)pages[i].Tag){ PrePage((int)CurrentPageControl.Tag+1, pages[i]); break;}
            }
            
        }
        private void LastPage_MouseEnter_Click(object? sender, EventArgs e)
        {
            var label = sender as Label;
            if ((int)CurrentPageControl.Tag == 1) label.Cursor = Cursors.No;
            else {label.Cursor = Cursors.Hand;label.BackColor = PageEneterColor;}
           
        }
        private void LastPage_MouseLeave_Click(object? sender, EventArgs e)
        {
            var label = sender as Label;
            label.BackColor = PageUnCheckBackColor;
        }
        private void LastPage_Click(object? sender, EventArgs e)
        {
            if ((int)CurrentPageControl.Tag == 1) return;
            if ((int)CurrentPageControl.Tag == 2&&page>6)
            {
                CurrentPageControl.BackColor = PageUnCheckBackColor;
                CurrentPageControl.ForeColor = PageUnCheckFontColor;
                CurrentPageControl = label_StartPage;
                CurrentPageControl.BackColor = PageCheckBackColor;
                CurrentPageControl.ForeColor = PageCheckFontColor;
                return;
            }
            for (int i = 0; i < pages.Count; i++)
            {
                if ((int)CurrentPageControl.Tag - 1 == (int)pages[i].Tag)
                {
                    PrePage((int)CurrentPageControl.Tag -1, pages[i]);break;
                }
            }
        }
        /// <summary>
        /// 初始化分页
        /// </summary>
        /// <param name="page"></param>
        public void  SetPage(int page)
        {
           this.Controls.Clear();
            if (page == 0) return;
           
            labelLastPage = new Label();
            labelLastPage.AutoSize = false;
            labelLastPage.Size = new Size(60, 30);
            labelLastPage.Text = "上一页";
            labelLastPage.TextAlign = ContentAlignment.MiddleCenter;
            labelLastPage.BackColor = PageUnCheckBackColor;
            labelLastPage.Margin = new Padding(0, 0, 2, 0);
            labelLastPage.Paint += page_Painit;
            labelLastPage.Click += LastPage_Click;
            labelLastPage.MouseLeave += LastPage_MouseLeave_Click;
            labelLastPage.MouseEnter += LastPage_MouseEnter_Click;

            this.Controls.Add(labelLastPage);
            DealPage(page);
            labelNextPage = new Label();
            labelNextPage.AutoSize = false;
            labelNextPage.Size = new Size(60, 30);
            labelNextPage.Text = "下一页";
            labelNextPage.Margin = new Padding(0, 0, 10, 0);
            labelNextPage.TextAlign = ContentAlignment.MiddleCenter;
            labelNextPage.BackColor = PageUnCheckBackColor;
            labelNextPage.Paint += page_Painit;
            labelNextPage.Click += labelNextPage_Click;
            labelNextPage.MouseLeave += labelNextPage_MouseLeave_Click;
            labelNextPage.MouseEnter += labelNextPage_MouseEnter_Click;

            this.Controls.Add(labelNextPage);

            Label labelLastRange = new Label();
            labelLastRange.AutoSize = false;
            labelLastRange.Size = new Size(40, 30);
            labelLastRange.Text = "到第";
            labelLastRange.Margin = new Padding(0, 0, 0, 0);
            labelLastRange.TextAlign = ContentAlignment.MiddleCenter;
            labelLastRange.BackColor = PageUnCheckBackColor;

            this.Controls.Add(labelLastRange);

            PageBox = new TextBox();
            PageBox.Size = new Size(50, 30);
            PageBox.Margin = new Padding(0, 2, 0, 0);
            PageBox.Paint += page_Painit;
            PageBox.TextChanged += Pagebox_TextChanged;
            this.Controls.Add(PageBox);

            Label labelRangePage = new Label();
            labelRangePage.AutoSize = false;
            labelRangePage.Size = new Size(30, 30);
            labelRangePage.Text = "页";
            labelRangePage.Margin = new Padding(0, 0, 2, 0);
            labelRangePage.TextAlign = ContentAlignment.MiddleCenter;
            labelRangePage.BackColor = PageUnCheckBackColor;
            this.Controls.Add(labelRangePage);

            Label label_Sure = new Label();
            label_Sure.AutoSize = false;
            label_Sure.Size = new Size(50, 30);
            label_Sure.Text = "确定";
            label_Sure.Margin = new Padding(0, 0, 2, 0);
            label_Sure.TextAlign = ContentAlignment.MiddleCenter;
            label_Sure.BackColor = PageUnCheckBackColor;
            label_Sure.Paint += page_Painit;
            label_Sure.Click += label_Sure_Click;
            label_Sure.MouseLeave += label_Sure_MouseLeave_Click;
            label_Sure.MouseEnter += label_Sure_MouseEnter_Click;
            this.Controls.Add(label_Sure);

            Label labelSum = new Label();
            labelSum.AutoSize = false;
            labelSum.Size = new Size(80, 30);
            labelSum.Text = "共 " + page + " 条";
            labelSum.Margin = new Padding(0, 0, 2, 0);
            labelSum.TextAlign = ContentAlignment.MiddleCenter;
            labelSum.BackColor = PageUnCheckBackColor;
            this.Controls.Add(labelSum);
            DropPage();
        }
        private void DealPage(int SumPage)
        {
            this.SumPage = SumPage;
            page = SumPage % PageSize > 0 ? SumPage / PageSize + 1 : SumPage / PageSize;
            pages = new List<Label>();
            if (page < 7)
            {
                for (int i = 1; i <= page; i++)
                {
                    Label label = new Label();
                    label.Parent = this;
                    label.AutoSize = false;
                    label.Size = new Size(30, 30);
                    label.Text = i.ToString();
                    label.Tag = i;
                    label.Margin = new Padding(0, 0, 2, 0);
                    label.TextAlign = ContentAlignment.MiddleCenter;
                    label.BackColor = PageUnCheckBackColor;
                    label.Paint += page_Painit;
                    label.Click += Label_Click;
                    label.MouseLeave += label_MouseLeave_Click;
                    label.MouseEnter += label_MouseEnter_Click;
                    this.Controls.Add(label);
                    pages.Add(label);
                }
                pages[0].BackColor = PageCheckBackColor;
                pages[0].ForeColor = PageCheckFontColor;
                CurrentPageControl = pages[0];
            }
            else
            {
                string[] PageArr = new string[]
                {
                    "1","...","2","3","4","5","6","...",page.ToString()
                };
                for (int i = 0; i < PageArr.Length; i++)
                {
                    Label label = new Label();
                    label.Parent = this;
                    label.AutoSize = false;
                    label.Text = PageArr[i];

                    if (i == 1)
                    {
                        label.Size = new Size(50, 30);
                        label.Tag = -1;
                        label.BackColor = PageUnCheckBackColor;
                        label.Visible = false;
                        labelLeft = label;
                    }
                    else if (i == 7)
                    {
                        label.BackColor = PageUnCheckBackColor;
                        label.Size = new Size(50, 30);
                        label.Tag = 0;
                        labelRight = label;
                    }
                    else
                    {
                        label.Size = new Size(30, 30);
                        label.Tag = int.Parse(PageArr[i]);
                        label.Click += Label_Click;
                        if (i == 6) label.Visible = false;
                        label.BackColor = PageUnCheckBackColor;
                        label.MouseLeave += label_MouseLeave_Click;
                        label.MouseEnter += label_MouseEnter_Click;
                        if (i > 1 && i < 7) pages.Add(label);
                        if (i == 0)
                        {
                            label.BackColor = PageCheckBackColor;
                            label.ForeColor = PageCheckFontColor;
                            CurrentPageControl = label;
                            label_StartPage = label;
                        }
                        if (i == 8) label_EndPage = label;
                    }
                    label.Margin = new Padding(0, 0, 2, 0);
                    label.TextAlign = ContentAlignment.MiddleCenter;
                    label.Paint += page_Painit;
                    this.Controls.Add(label);
                }
            }
         //   if (PageEvent != null) PageEvent.Invoke(CurrentPageControl, new PageEventArgs(1, this.PageSize));
            

        }
        private void DropPage()
        {
            Drop = new Label();
            Drop.AutoSize = false;
            Drop.Size = new Size(60, 30);
            Drop.Text = this.PageSize.ToString();
            Drop.Tag = this.PageSize;
            Drop.Margin = new Padding(0, 0, 10, 0);
            Drop.TextAlign = ContentAlignment.MiddleLeft;
            Drop.ImageAlign = ContentAlignment.MiddleRight;
            Drop.Image = Properties.Resources.bottom_pull; 
            Drop.BackColor = PageUnCheckBackColor;
            Drop.Paint += page_Painit;
            Drop.Click += Drop_Click;
            Drop.MouseLeave += Drop_MouseLeave_Click;
            Drop.MouseEnter += Drop_MouseEnter_Click;
            this.Controls.Add(Drop);
            flowLayoutPanel=new FlowLayoutPanel();
            flowLayoutPanel.Width = 60;
            int height = 0;
            for (int i = 0; i < PageArr.Length; i++)
            {
                Label label = new Label();
                label.Tag = PageArr[i];
                label.Text = PageArr[i].ToString() ;
                label.AutoSize = false;
                label.Height = 30;
                label.Width = 60;
                label.TextAlign = ContentAlignment.MiddleCenter;
                label.BackColor = PageUnCheckBackColor;

                label.Click += DropItem_Click;
                label.MouseEnter += Dropitem_MouseEnterClick;
                label.MouseLeave += Dropitem_MouseLeaveClick;
                label.Paint += Drop_Paint;
                height +=30;
                flowLayoutPanel.Controls.Add(label);
            }
            //如果子项的高大于下拉框的4倍高度,某人为4倍高度
            if (height > 30 * 4)
            {
                flowLayoutPanel.Height = 30 * 4;
            }
            else//如果小于4倍高度,那么就等于累计高度
            {
                flowLayoutPanel.Height = height;
            }
        }
        private void Drop_Paint(object? sender, PaintEventArgs e)
        {
            Control control = sender as Control;
            ControlPaint.DrawBorder(e.Graphics,//获取进行绘制的图形
           new Rectangle(0, 0, control.Width, control.Height),//绘制控件所在工作区域
            Color.FromArgb(224, 224, 224), 1, ButtonBorderStyle.Solid,//边框类型,选择实线边框,也有虚线等种类;下面这四个重复的传参是设置工作区上下左右边框的功能
            Color.FromArgb(224, 224, 224), 1, ButtonBorderStyle.Solid,
            Color.FromArgb(224, 224, 224), 1, ButtonBorderStyle.Solid,
            Color.FromArgb(224, 224, 224), 1, ButtonBorderStyle.Solid);
        }
        private void Dropitem_MouseLeaveClick(object? sender, EventArgs e)
        {
            var label = sender as Label;
            label.Cursor = Cursors.Hand;
            label.BackColor = PageUnCheckBackColor;
            label.ForeColor = PageUnCheckFontColor;
        }
        private void Dropitem_MouseEnterClick(object? sender, EventArgs e)
        {
            var label = sender as Label;
            label.BackColor = PageCheckBackColor;
            label.ForeColor =PageCheckFontColor;
        }
        private void DropItem_Click(object? sender, EventArgs e)
        {
            var label = sender as Label;
            this.Controls.Clear();
            this.PageSize = (int)label.Tag;
            this.Drop.Text = label.Tag.ToString();
            SetPage(this.SumPage);
             if (PageEvent != null) PageEvent.Invoke(CurrentPageControl, new PageEventArgs(1, this.PageSize));

            pop.Close();
        }
        private void Drop_MouseEnter_Click(object? sender, EventArgs e)
        {
            var label = sender as Label;
            label.BackColor = PageEneterColor;
        }
        private void Drop_MouseLeave_Click(object? sender, EventArgs e)
        {
            var label = sender as Label;
            label.Cursor = Cursors.Hand;
            label.BackColor = PageUnCheckBackColor;
            label.ForeColor = PageUnCheckFontColor;
        }
        private void Drop_Click(object? sender, EventArgs e)
        {
            Label label = sender as Label;
        
             pop = new Popup(flowLayoutPanel);
            pop.Show(label);
        }
        /// <summary>
        /// 点击页码或者点击上一页,写一页按钮
        /// </summary>
        /// <param name="currentpage"></param>
        /// <param name="label"></param>
        private void PrePage(int currentpage, Label label)
        {
            CurrentPageControl.BackColor = PageUnCheckBackColor;
            CurrentPageControl.ForeColor = PageUnCheckFontColor;
            if (page < 7) CurrentPageControl = label;
            else
            {
                int count = 0;
                if (currentpage - 1 < 4)
                {
                    CurrentPageControl = label;
                    if (currentpage == 4 && pages[0].Visible == true)
                    {

                        for (int i = 2; i < 6; i++)
                        {
                            pages[count].Tag = i; pages[count].Text = i.ToString();
                            if (i == currentpage) CurrentPageControl = pages[count];
                            count++;
                        }
                    }
                    if (currentpage <= 3 && labelLeft.Visible == true)
                    {
                        for (int i = 2; i < 6; i++)
                        {
                            pages[count].Tag = i; pages[count].Text = i.ToString();
                            if (i == currentpage) CurrentPageControl = pages[1];
                            count++;
                        }
                    }
                    if (labelLeft.Visible == true) labelLeft.Visible = false;
                    if (pages[4].Visible == true) pages[4].Visible = false;
                    if (pages[0].Visible == false) pages[0].Visible = true;
                    if (labelRight.Visible == false) labelRight.Visible = true;
                }
                else
                {
                    if (page - currentpage < 4)
                    {
                        CurrentPageControl = label;
                        if (page - currentpage == 3 && labelRight.Visible == true)
                        {
                            if (pages[4].Visible == false) pages[4].Visible = true;
                            for (int i = currentpage - 2; i < currentpage + 3; i++)
                            {
                                pages[count].Tag = i; pages[count].Text = i.ToString();
                                if (i == currentpage) CurrentPageControl = pages[count];
                                count++;
                            }
                        }
                        if (pages[0].Visible == false) pages[0].Visible = true;
                        if (page - currentpage == 3 && labelRight.Visible == false)
                        {
                            for (int i = currentpage - 2; i < currentpage + 3; i++)
                            {
                                pages[count].Tag = i; pages[count].Text = i.ToString();
                                if (count == 2) CurrentPageControl = pages[2];
                                count++;
                            }
                        }
                        if (page - currentpage < 3)
                        {
                            if (pages[0].Visible == true) pages[0].Visible = false;
                            if (pages[4].Visible == false) pages[4].Visible = true;
                            for (int i = page - 5; i < page; i++)
                            {
                                pages[count].Tag = i; pages[count].Text = i.ToString();
                                if (i == currentpage) CurrentPageControl = pages[count];
                                count++;
                            }
                        }
                        if (labelLeft.Visible == false) labelLeft.Visible = true;
                        if (labelRight.Visible == true) labelRight.Visible = false;
                    }
                    else
                    {
                        if (pages[0].Visible == false) pages[0].Visible = true;
                        if (pages[4].Visible == false) pages[4].Visible = true;
                        if (labelLeft.Visible == false) labelLeft.Visible = true;
                        if (labelRight.Visible == false) labelRight.Visible = true;
                        for (int i = currentpage - 2; i < currentpage + 3; i++)
                        {
                            pages[count].Tag = i; pages[count].Text = i.ToString();
                            if (i == currentpage) CurrentPageControl = pages[count];
                            count++;
                        }
                    }
                }
            }
            CurrentPageControl.BackColor = PageCheckBackColor;
            CurrentPageControl.ForeColor = PageCheckFontColor;
            if (PageEvent != null) PageEvent.Invoke(currentpage,new PageEventArgs((int)label.Tag,this.PageSize));
        }
        /// <summary>
        /// 跳转页,点击跳转到某一页
        /// </summary>
        /// <param name="pageCount"></param>
        private void PageSure(int pageCount)
        {
            if (pageCount > 0 && pageCount <= page)
            {
                CurrentPageControl.BackColor = PageUnCheckBackColor;
                CurrentPageControl.ForeColor = PageUnCheckFontColor;
                if (page < 7)
                {
                    pages.ForEach(m => { if ((int)m.Tag == pageCount) CurrentPageControl = m; });
                }
                else
                {
                    int count = 0;

                    if (pageCount < 5)
                    {
                        CurrentPageControl = label_StartPage;
                        for (int i = 2; i < 6; i++)
                        {
                            pages[count].Tag = i; pages[count].Text = i.ToString();
                            if (i == pageCount) CurrentPageControl = pages[count];
                            count++;
                        }
                        if (labelLeft.Visible == true) labelLeft.Visible = false;
                        if (labelRight.Visible == false) labelRight.Visible = true;
                        if (pages[0].Visible == false) pages[0].Visible = true;
                        if (pages[4].Visible == true) pages[4].Visible = false;

                    }
                    else
                    {
                        if (labelRight.Visible == true) labelRight.Visible = false;
                        if (pages[0].Visible == true) pages[0].Visible = false;
                        if (pages[4].Visible == false) pages[4].Visible = true;
                        //如果选中的是最后一页
                        CurrentPageControl = label_EndPage;

                        if (page - pageCount <= 3)
                        {
                            if (page - pageCount == 3) if (pages[0].Visible == false) pages[0].Visible = true;
                            for (int i = page - 5; i < page; i++)
                            {
                                pages[count].Tag = i; pages[count].Text = i.ToString();
                                if (i == pageCount) CurrentPageControl = pages[count];
                                count++;
                            }
                        }
                        else
                        {
                            for (int i = pageCount - 2; i < pageCount + 3; i++)
                            {
                                pages[count].Tag = i; pages[count].Text = i.ToString();
                                if (i == pageCount) CurrentPageControl = pages[count];
                                count++;
                            }
                            if (labelRight.Visible == false) labelRight.Visible = true;
                            if (pages[0].Visible == false) pages[0].Visible = true;
                            if (pages[4].Visible == false) pages[4].Visible = true;
                        }
                        if (labelLeft.Visible == false) labelLeft.Visible = true;
                    }
                }
            }
            else PageBox.Text = "";
            CurrentPageControl.BackColor = PageCheckBackColor;
            CurrentPageControl.ForeColor = PageCheckFontColor;
            if (PageEvent != null) PageEvent.Invoke(CurrentPageControl, new PageEventArgs(pageCount, this.PageSize));

        }

    }
   cpPageComponent1.SetPage(200);

 

效果:

 

 

 

标签:控件,sender,--,CurrentPageControl,private,label,int,Label,winform
From: https://www.cnblogs.com/zpy1993-09/p/18316057

相关文章

  • 联想电脑收不到WiFi(Wireless-AC 3160 无法找到wifi6)
    可能出现该故障的设备:ThinkPadE450,E550,E450c,E550c ThinkPadE450,E550,E450c,E550c,在有的场景手机能收到的WiFi笔记本搜不到,这个收不到的WiFi他的版本是802.11ac/802.11axWiFi,如果路由器没有开启2.4G及向下兼容功能的话就会出现搜不到WiFi的故障现象。故障原因:......
  • 推式子——拓展欧几里德算法exgcd
    试求方程\(ax+by=\gcd(a,b)\)的一组整数解,其中\(a\)和\(b\)是给定的数提前准备好一个式子:辗转相除法\[\gcd(a,b)=\gcd(b,a\bmodb)\]同时我们可以注意到,\(\bmod\)的等价版本:\[a\bmodb=a-b\lfloor\frac{a}{b}\rfloor\]开始推式子首先考虑\(b=0\)的情况,因为......
  • k8s-deployment:应用生命周期管理流程
    deployment:应用生命周期管理流程 应用程序->部署->升级->回滚->删除1部署deployment###kubectlapply-fweb1-deployp.yaml kubectlcreatedeploymentweb--image=nginx:1.16--replicas=3#web1-deploy.yaml ......
  • 相关技能要点
    相关技能要点1.基础语言知识ES5/ES6:理解并能够运用现代JavaScript特性,如箭头函数、解构赋值、模板字符串、类和模块等。HTML5:熟悉新的HTML5标签和功能,如语义化标签、离线存储、WebWorkers等。TypeScript:掌握TypeScript的类型系统、接口、泛型和装饰器等特性。2.Re......
  • 为什么 celery 击败调度程序在 django celery 过期后仍在运行
    PeriodicTask.objects.create(interval=interval,crontab=crontab,clocked=clocked,name=data["name"],task=data["task"],#dropdown......
  • docker
    -----createredhat8.1-------20.212.105.2110.3.0.5k8s-node1node1/K8s-node1pass-----installdocker------https://docs.docker.com/engine/install/centos/yuminstall-yyum-utilsyum-config-manager--add-repohttps://download.docker.com/linux/centos/d......
  • mkl学习
    MathKernelLibrary)是Intel提供的一个高性能的数学库,它提供了广泛的数学函数来优化各种数学运算,包括线性代数、快速傅里叶变换(FFT)、随机数生成等。MKL库也提供了内存管理函数,如mkl_malloc()和mkl_free(),以及线性代数函数,如cblas_dgemm()。下面我将分别介绍这些函数的用法:mkl_ma......
  • Apache压测工具ab(Apache Bench)工具的下载安装和使用示例
    场景Jmeter进行http接口压力测试:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/124928498上面讲压测工具Jmeter的使用,下面介绍另外一个ab(ApacheBench)压测工具的使用。apachebenchapachebench是apache自带的压力测试工具。ab不仅可以对apache服务器进行网......
  • DH协议-迪菲-赫尔曼密钥交换协议
    DH算法即Diffie–Hellmankeyexchange-迪菲-赫尔曼密钥交换协议,是一种密钥交换的方法。主要用于TLS握手中安全的交换对称加密密钥。根据不同的算法,DH协议可以分为基于离散对数算法StaticDH:静态DH协议(服务端私钥固定)DHE:临时私钥DH协议(服务端私钥随机)基于ECC椭圆曲线......
  • Pydub 库版本检查有错误
    我只是好奇为什么只有这个库有版本检查错误。下面是代码。importpydubprint('Pydubversion:',pydub.__version__)我得到如下错误。AttributeError:module'pydub'hasnoattribute'__version__'其他库可以打印他们的版本。我可以检查'pydub'的版本(0......