给生成的按钮分页(winform)

 很遗憾,只能写出这样的方法-----

//定义全局变量

 public static int iCount = 65;   //取得所有的 btn 数量
        int iPage = ((iCount % 20 == 0) ? (iCount / 20) : (iCount / 20 + 1));//计算页数   3
        int iNewPage = 0; //取当前的page  0 1 2 3

        public static int k = 1;  //记录当前数量

        int iFlag = 0;//每页的数量
//调用

 public fButton()
        {
            InitializeComponent();

            createButton(0);
        }

//方法

 public void createButton(int page)
        {
            iFlag = page * 20 - 1;
            k = page * 20;
            Button[] btn = new Button[iCount];

            if (iCount < 20 || iCount == 0)  //一个按钮也没有
            {
                return;
            }
            if (panAll.Controls.Count > 0)
            {
                panAll.Controls.Clear();
            }
            for (int i = page * 19; i < iCount - 1; i++)
            {
                int d = Math.Abs(((page + 1) * 19 - i) - 19);

                int w = (page > 0) ? d : i;
                for (int j = 0; j < 4; j++)
                {
                    btn[i] = new Button();
                    btn[i].Name = "btn" + i.ToString();
                    btn[i].Text = k.ToString();
                    btn[i].Size = new System.Drawing.Size(300, 90);
                    btn[i].Location = new System.Drawing.Point(j*300 + 50, w * 100 + 20);


                    if (i >= iFlag && k < (page + 1) * 20 && k < iCount)
                    {
                        k++;
                        panAll.Controls.Add(btn[i]);
                    }
                    else
                    {
                        break;
                    }
                }
            }           
        }
 private void button1_Click(object sender, EventArgs e)   //上一页
        {

            if (iNewPage > 0)   //不在首页
            {
                iNewPage -= 1;    //当前的 page

                iFlag = iNewPage * 19;

                k = iNewPage * 20;

                createButton(iNewPage);
            }           
        }

        private void button2_Click(object sender, EventArgs e)
        {

            if (iNewPage < iPage)
            {
                iNewPage += 1;    //当前的 page

                iFlag = iNewPage * 19;

                k = iNewPage * 20;

                createButton(iNewPage);
            }         
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值