很遗憾,只能写出这样的方法-----
//定义全局变量
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);
}
}