16,722
社区成员




Public Class data
'连接Access 数据
Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb")
Dim cmd As New OleDbCommand("Select text from A2", con)
Dim da As New OleDbDataAdapter(cmd)
Dim ds As New DataSet()
Private Const m_iPageSize As Integer = 10
Private m_iPageCount As Integer = 1000 / m_iPageSize
Private m_iCurrPageIndex As Integer = 1
Private Sub PageIndexChanged(ByVal PageIndex As Integer)
If PageIndex <= 0 OrElse PageIndex > m_iPageCount Then
Return
End If
If ds Is Nothing OrElse ds.Tables.Count <= 0 Then
Return
End If
Dim controls As Control() = Nothing
Dim iLabelIndex As Integer = 0
For i As Integer = (PageIndex - 1) * m_iPageSize To m_iPageSize * m_iCurrPageIndex - 1
controls = Me.Controls.Find("MyLabel" + iLabelIndex.ToString(), False)
If controls IsNot Nothing AndAlso controls.Length > 0 And i < ds.Tables("mytext").Rows.Count Then
DirectCast(controls(0), Label).Text = ds.Tables("mytext").Rows(i)("Text").ToString()
End If
iLabelIndex += 1
Next
End Sub
Private Sub data_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
da.Fill(ds, "mytext")
'创建两行Label,每行5个
Dim MyLabel As Label() = New Label(9) {}
Dim iIndex As Integer = 0
Me.DoubleBuffered = True
Me.SuspendLayout()
For i As Integer = 0 To 1
For j As Integer = 0 To 4
MyLabel(iIndex) = New Label()
MyLabel(iIndex).Left = MyLabel(iIndex).Width * j
MyLabel(iIndex).Top = MyLabel(iIndex).Height * i
MyLabel(iIndex).Text = "MyLabel" + iIndex.ToString()
MyLabel(iIndex).Name = "MyLabel" + iIndex.ToString()
iIndex += 1
Next
Next
Me.Controls.AddRange(MyLabel)
Me.ResumeLayout()
' 加载数据
PageIndexChanged(m_iCurrPageIndex)
End Sub
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If m_iCurrPageIndex < m_iPageCount Then
PageIndexChanged(System.Threading.Interlocked.Increment(m_iCurrPageIndex))
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If m_iCurrPageIndex > 1 Then
PageIndexChanged(System.Threading.Interlocked.Decrement(m_iCurrPageIndex))
End If
End Sub
End Class
DataTable dt = new DataTable();
private const int m_iPageSize = 10;
private int m_iPageCount = 1000 / m_iPageSize;
private int m_iCurrPageIndex = 1;
private void PageIndexChanged(int PageIndex)
{
if(PageIndex<=0 || PageIndex>m_iPageCount)
return;
if (dt == null || dt.Rows.Count <= 0)
return;
Control[] controls = null;
int iLabelIndex = 0;
for (int i = (PageIndex - 1) * m_iPageSize; i < m_iPageSize * m_iCurrPageIndex; i++)
{
controls = this.Controls.Find("MyLabel" + iLabelIndex.ToString(), false);
if(controls != null && controls.Length>0)
{
((Label)controls[0]).Text =dt.Rows[i]["Text"].ToString();
}
iLabelIndex++;
}
}
private void Form1_Load(object sender, EventArgs e)
{
dt.Columns.Add("ID");
dt.Columns.Add("Text");
for (int i = 0; i < 1000; i++)
{
DataRow row = dt.NewRow();
row["ID"] = i.ToString();
row["Text"] = "Text " + i.ToString();
dt.Rows.Add(row);
}
//创建两行Label,每行5个
Label[] MyLabel = new Label[10];
int iIndex = 0;
this.DoubleBuffered = true;
this.SuspendLayout();
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 5; j++)
{
MyLabel[iIndex] = new Label();
MyLabel[iIndex].Left =MyLabel[iIndex].Width * j;
MyLabel[iIndex].Top = MyLabel[iIndex].Height * i;
MyLabel[iIndex].Text = "MyLabel" + iIndex.ToString();
MyLabel[iIndex].Name = "MyLabel" + iIndex.ToString();
iIndex++;
}
}
this.Controls.AddRange(MyLabel);
this.ResumeLayout();
// 加载数据
PageIndexChanged(m_iCurrPageIndex);
}
// 上一页
private void button2_Click(object sender, EventArgs e)
{
if (m_iCurrPageIndex < m_iPageCount)
{
PageIndexChanged(++m_iCurrPageIndex);
}
}
// 下一页
private void button1_Click(object sender, EventArgs e)
{
if (m_iCurrPageIndex > 1)
{
PageIndexChanged(--m_iCurrPageIndex);
}
}