以编程方式增加对象名称 C#
Increase object names programmatically C#
我有一个用于数据输入的文本框和 10 个用于显示数据的文本框。 10 个查看器文本框默认为 visible=false
。例如,当我输入文本框计数为 "3" 时,只有 3 个文本框应该可见。 (然后我可以用这些文本框做任何我想做的事)
这是我的代码;
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ToString());
SqlCommand pencere = new SqlCommand("select COUNT (distinct(grup)) as ürün from fiyat", conn);
SqlCommand pencereisimleri = new SqlCommand("select distinct(grup) as ürün from fiyat", conn);
conn.Open();
SqlDataReader dr = pencere.ExecuteReader();
SqlDataAdapter da = new SqlDataAdapter(pencereisimleri);
DataTable dt1 = new DataTable();
da.Fill(dt1);
List<String> stringArr = new List<String>();
for (int a = 0; a < dt1.Rows.Count; a++)
{
TextBox[a].Visible = true;
TextBox[a].Text = "Open Textbox";
}
不确定,如果您要这样做,但是将文本框添加到集合(如数组或列表)怎么样?
示例:
private List<TextBox> boxes = new List<TextBox>();
boxes.Add(textBox1);
boxes.Add(textBox2);
// etc...
然后您可以使用 foreach(或 for)循环遍历您的框:
for (int a = 0; a < dt1.Rows.Count; a++)
{
boxes[a].Visible = true;
boxes[a].Text = "Open Textbox";
}
int count = dt1.Rows.Count;
foreach (Control x in this.Controls)
{
if (count == 0)
break;
if (x is TextBox)
{
((TextBox)x).Text = "Open Textbox";
((TextBox)x).Visible = true;
count--;
}
}
您可以将可见性绑定到数组
Visibility[] tbViz = new Visibility[10];
public Visibility[] TbViz { get { return tbViz; } }
public void UpdateViz(int num)
{
for (int i = 0; i < tbViz.Length; i++)
{
if (i < num)
tbViz[i] = System.Windows.Visibility.Visible;
else
tbViz[i] = System.Windows.Visibility.Hidden;
}
}
Visisbility="{binding path=TbViz[0]}"
如果 winforms 同样的方法
public void UpdateViz(int num)
{
for (int i = 0; i < tbViz.Length; i++)
tbViz[i].Visisble = (i < num);
}
我有一个用于数据输入的文本框和 10 个用于显示数据的文本框。 10 个查看器文本框默认为 visible=false
。例如,当我输入文本框计数为 "3" 时,只有 3 个文本框应该可见。 (然后我可以用这些文本框做任何我想做的事)
这是我的代码;
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ToString());
SqlCommand pencere = new SqlCommand("select COUNT (distinct(grup)) as ürün from fiyat", conn);
SqlCommand pencereisimleri = new SqlCommand("select distinct(grup) as ürün from fiyat", conn);
conn.Open();
SqlDataReader dr = pencere.ExecuteReader();
SqlDataAdapter da = new SqlDataAdapter(pencereisimleri);
DataTable dt1 = new DataTable();
da.Fill(dt1);
List<String> stringArr = new List<String>();
for (int a = 0; a < dt1.Rows.Count; a++)
{
TextBox[a].Visible = true;
TextBox[a].Text = "Open Textbox";
}
不确定,如果您要这样做,但是将文本框添加到集合(如数组或列表)怎么样?
示例:
private List<TextBox> boxes = new List<TextBox>();
boxes.Add(textBox1);
boxes.Add(textBox2);
// etc...
然后您可以使用 foreach(或 for)循环遍历您的框:
for (int a = 0; a < dt1.Rows.Count; a++)
{
boxes[a].Visible = true;
boxes[a].Text = "Open Textbox";
}
int count = dt1.Rows.Count;
foreach (Control x in this.Controls)
{
if (count == 0)
break;
if (x is TextBox)
{
((TextBox)x).Text = "Open Textbox";
((TextBox)x).Visible = true;
count--;
}
}
您可以将可见性绑定到数组
Visibility[] tbViz = new Visibility[10];
public Visibility[] TbViz { get { return tbViz; } }
public void UpdateViz(int num)
{
for (int i = 0; i < tbViz.Length; i++)
{
if (i < num)
tbViz[i] = System.Windows.Visibility.Visible;
else
tbViz[i] = System.Windows.Visibility.Hidden;
}
}
Visisbility="{binding path=TbViz[0]}"
如果 winforms 同样的方法
public void UpdateViz(int num)
{
for (int i = 0; i < tbViz.Length; i++)
tbViz[i].Visisble = (i < num);
}