private void button8_Click(object sender, EventArgs e) { int num = 0; DataTable dt = GetData();//你可以将数据库里数据取出填充到DataTable 中, dataGridView1.DataSource = dt; for (int i = 0; i < dt.Rows.Count; i++) { int n = dataGridView1.Rows.Count - 1; for (int j = 0; j < dt.Columns.Count; j++) { int h = num / 3; int v = num % 3; TextBox txt = new TextBox();
你的问题其实就是怎么循环出多个小方块,自己用BUTTON也好,自定义控件也好,把这个循环做出来就行了。 自己查一下,动态循环控件foreach (Control c in Page.Controls) { if (c is Label) { Label l = c as Label; Response.Write("!!!!" + l.Text.ToString() + "<br />"); } }你能循环出来了,其他的数据长度查出多少就循环多少个这不能算问题了
{
int num = 0;
DataTable dt = GetData();//你可以将数据库里数据取出填充到DataTable 中,
dataGridView1.DataSource = dt;
for (int i = 0; i < dt.Rows.Count; i++)
{
int n = dataGridView1.Rows.Count - 1;
for (int j = 0; j < dt.Columns.Count; j++)
{ int h = num / 3;
int v = num % 3;
TextBox txt = new TextBox();
txt.Location = new Point(h * 37 + 19, v * 35 + 56);
txt.Size = new Size(30, 29);
txt.Margin = new System.Windows.Forms.Padding(3);
txt.Text = dt.Rows[i].ItemArray[j].ToString();
//在groupBox1中增加TextBox;
this.groupBox1.Controls.Add(txt);
num++;
}
n++;
}
} private System.Data.DataTable GetData()
{
System.Data.DataTable tableInfo = new System.Data.DataTable(); DataColumn dctime = new DataColumn("Time", Type.GetType("System.String"));
DataColumn dcCity = new DataColumn("City", Type.GetType("System.String"));
DataColumn dcCount = new DataColumn("Count", Type.GetType("System.Int32"));
tableInfo.Columns.Add(dctime);
tableInfo.Columns.Add(dcCity);
tableInfo.Columns.Add(dcCount);
DataRow dr = tableInfo.NewRow();
dr["Time"] = "1:00";
dr["City"] = "10";
dr["Count"] = "15";
tableInfo.Rows.Add(dr);
DataRow dr1 = tableInfo.NewRow();
dr1["Time"] = "2:00";
dr1["City"] = "12";
dr1["Count"] = "19";
tableInfo.Rows.Add(dr1);
DataRow dr2 = tableInfo.NewRow();
dr2["Time"] = "3:00";
dr2["City"] = "13";
dr2["Count"] = "25";
tableInfo.Rows.Add(dr2);
DataRow dr3 = tableInfo.NewRow();
dr3["Time"] = "4:00";
dr3["City"] = "14";
dr3["Count"] = "10";
tableInfo.Rows.Add(dr3); DataRow dr4 = tableInfo.NewRow();
dr4["Time"] = "5:00";
dr4["City"] = "15";
dr4["Count"] = "11";
tableInfo.Rows.Add(dr4); DataRow dr5 = tableInfo.NewRow();
dr5["Time"] = "6:00";
dr5["City"] = "16";
dr5["Count"] = "17";
tableInfo.Rows.Add(dr5); DataRow dr6 = tableInfo.NewRow();
dr6["Time"] = "7:00";
dr6["City"] = "17";
dr6["Count"] = "20";
tableInfo.Rows.Add(dr6); DataRow dr7 = tableInfo.NewRow();
dr7["Time"] = "8:00";
dr7["City"] = "12";
dr7["Count"] = "13";
tableInfo.Rows.Add(dr7);
return tableInfo;
}
Me.Panel4.Controls.Clear()
Dim v_n As Integer = 100
Dim n2 As Integer = 0 For Each row1 In dt1.Rows
Dim lab1 As New Label
lab1.Tag = row1.Item("group_no")
lab1.Text = "Group:" & row1.Item("group_no")
Me.Panel4.Controls.Add(lab1)
lab1.Width = 60
lab1.Height = Me.Panel4.Height
lab1.Left = lab1.Width * n2 + 5 * n2
'lab1.AutoSize = True
'lab1.Dock = DockStyle.Left
'lab1.SendToBack()
lab1.BringToFront()
Dim v_g_n As Integer
v_g_n = 50 + v_n
If v_g_n > 255 Then
v_g_n = 255
End If
lab1.BackColor = System.Drawing.Color.FromArgb(255, 50 + 0, v_g_n, 50)
AddHandler lab1.Click, AddressOf Me.Labelx_Click v_n = v_n + 15 n2 = n2 + 1 Next
你怎么知道是 Label 呢?
或直接listview
你怎么知道是 Label 呢?
什么意思....
/// <summary>
/// 动态生成为数据库字段输入描述信息的textbox
/// </summary>
/// <param name="row"></param>
/// <param name="line"></param>
/// <param name="p"></param>
/// <param name="list"></param>
private void SetTextBox(int row,int line,Panel p,IList list)
{
TextBox tb = null;
for (int i = 0; i < line; i++)
{
for (int j = 0; j < row; j++)
{
tb = new TextBox();
tb.Size = new System.Drawing.Size(100,21);
tb.Name = "txt" + list[j].ToString();
//tb.TextAlign = HorizontalAlignment.Center;
tb.Location = new Point(250 + (i * 90), 30 + (j * 60));
p.Controls.Add(tb);
}
}
}
/// <summary>
/// 动态生成数据库字段对应的数据类型
/// </summary>
/// <param name="row"></param>
/// <param name="line"></param>
/// <param name="p"></param>
/// <param name="list"></param>
private void SetClassType(int row, int line, Panel p, IList list)
{
Label label = null;
for (int i = 0; i < line; i++)
{
for (int j = 0; j < row; j++)
{
label = new Label();
//设置背景颜色
//label.BackColor = Color.Yellow;
//设置字体
label.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
//设置尺寸
label.AutoSize = false;
label.Size = new System.Drawing.Size(70, 25);
//设置座位号
label.Text = list[j].ToString();
label.TextAlign = ContentAlignment.MiddleCenter;
//设置位置
label.Location = new Point(150 + (i * 90), 30 + (j * 60)); p.Controls.Add(label);
}
}
}/// <summary>
/// 动态生成数据库字段
/// </summary>
/// <param name="row"></param>
/// <param name="cell"></param>
/// <param name="p"></param>
/// <param name="list"></param>
private void SetLable(int row,int cell,Panel p,IList list)
{
Label label = null;
for (int i = 0; i < cell; i++)
{
for (int j = 0; j < row; j++)
{
label = new Label();
//设置背景颜色
//label.BackColor = Color.Yellow;
//设置字体
label.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
//设置尺寸
label.AutoSize = false;
label.Size = new System.Drawing.Size(100, 25);
//设置座位号
label.Text = list[j].ToString();
label.TextAlign = ContentAlignment.MiddleCenter;
//设置位置
label.Location = new Point(30 + (i * 90), 30 + (j * 60));
p.Controls.Add(label);
}
}
}
{
if (c is Label)
{
Label l = c as Label; Response.Write("!!!!" + l.Text.ToString() + "<br />");
}
}你能循环出来了,其他的数据长度查出多少就循环多少个这不能算问题了