For Each con As Control In Me.Controls If con.Name.Substring(0, 8) = "ComboBox" Then Dim cn As ComboBox = con cn.Text = "what you want!" End If Next
var n = 0; foreach (ComboBox cur in Controls.OfType<ComboBox>()) { cur.Name = "combobox" + n++; } 不过这样命名后,只能用 Controls["combobox1"]、Controls["combobox40"] 这样访问
If con.Name.Substring(0, 8) = "ComboBox" Then
Dim cn As ComboBox = con
cn.Text = "what you want!"
End If
Next
foreach (ComboBox cur in Controls.OfType<ComboBox>())
{
cur.Name = "combobox" + n++;
}
不过这样命名后,只能用 Controls["combobox1"]、Controls["combobox40"] 这样访问
您好,我还想操作的是60个combobox 初始化的时候都填充一样的内容,但是在往数据库插入的时候,60个是分为10条数据插进去,所以我想通过循环实现插入操作
for(i=1;i<=60;i++)
{
foreach (ComboBox cur in Controls.OfType<ComboBox>())
{
//ComboBox cur = new ComboBox();
cur.Name = "comboBox" + i;
cur.Items.Add("");
cur.Items.Add("D");
cur.Items.Add("L");
cur.Items.Add("V");
cur.Items.Add("OG");
}
}
我想实现的是60个都填充上面的内容,但是我现在这个代码,每个都填充了60次
{
int yBase = 10;
int xBase = 10;
int xIncreasement = 60;
for (int i = 0; i < 6; i++)
{
for (int j = 0; j < 10; j++)
{
ComboBox cbo = new ComboBox();
cbo.Location = new System.Drawing.Point(xBase + (j * xIncreasement), yBase);
cbo.Name = "comboBox" + (i + j);
cbo.Size = new System.Drawing.Size(50, 20);
cbo.Items.Add("");
cbo.Items.Add("D");
cbo.Items.Add("L");
cbo.Items.Add("V");
cbo.Items.Add("OG");
this.Controls.Add(cbo);
}
yBase += 30;
}
this.SuspendLayout();
}
for (int i = 1; i <= 60; i++)
{
object obj = this.GetType().GetField("ComboBox" + i.ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
ComboBox cb = (ComboBox)obj;
cb.Text = i.ToString();
}
插入:
for (int i = 0; i < 10; i++)
{
object obj;
int j = i * 6; obj = this.GetType().GetField("ComboBox" + (j + 1).ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
string c1 = ((ComboBox)obj).Text;
obj = this.GetType().GetField("ComboBox" + (j + 2).ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
string c2 = ((ComboBox)obj).Text;
obj = this.GetType().GetField("ComboBox" + (j + 3).ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
string c3 = ((ComboBox)obj).Text;
obj = this.GetType().GetField("ComboBox" + (j + 4).ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
string c4 = ((ComboBox)obj).Text;
obj = this.GetType().GetField("ComboBox" + (j + 5).ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
string c5 = ((ComboBox)obj).Text;
obj = this.GetType().GetField("ComboBox" + (j + 6).ToString(), System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);
string c6 = ((ComboBox)obj).Text; //将c1,c2,c3,c4,c5,c6插入到数据库
}
cbo.Name = "comboBox" + (i + j);改为cbo.Name = "comboBox" + ((i * 10) + 1 + j);
{
int yBase = 10;
int xBase = 10;
int xIncreasement = 60;
for (int i = 0; i < 60; i++)
{
if (i != 0 && i % 10 == 0)
{
yBase += 30;
}
ComboBox cbo = new ComboBox();
cbo.Location = new System.Drawing.Point(xBase + ((i % 10 - 1) * xIncreasement), yBase);
cbo.Name = "comboBox" + (i + 1);
cbo.Size = new System.Drawing.Size(50, 20);
cbo.Items.Add("");
cbo.Items.Add("D");
cbo.Items.Add("L");
cbo.Items.Add("V");
cbo.Items.Add("OG");
this.Controls.Add(cbo);
}
this.SuspendLayout();
}
var n = 1;
var ds = new List<string>() { "", "D", "L", "V", "OG" };
foreach (ComboBox cur in Controls.OfType<ComboBox>())
{
cur.Name = "combobox" + n++; //命名
cur.DataSource = ds.ToList(); //绑定数据
}
ComboBox[] arr = { ComboBox1, ComboBox2, ... };
foreach (ComboBox c in arr)
{}