循环中的组合框
本文关键字:组合 循环 | 更新日期: 2023-09-27 17:49:18
我的表单上有超过50个组合框,它们的项目货币(美元,欧元)。每一种货币都有自己的价格。
我要做的是基于货币的价格总和。例如,如果我有20美元,我想要得到这20个价格值的总和。如何循环遍历组合框?
您可以像@AYETY建议的那样使用组合框的。text属性,但我认为这取决于您如何填充它们,以及您是否更愿意使用值而不是文本等。
不管怎样,你没有说组合框在表单上的位置,所以如果它们被放置在容器中,你需要递归地搜索表单上的控件,例如
public IEnumerable<Control> GetChildControls(Control parentControl)
{
List<Control> controls = new List<Control>();
foreach (Control child in parentControl.Controls)
{
controls.AddRange(GetChildControls(child));
}
controls.Add(parentControl);
return controls;
}
,然后询问组合框。基于使用组合框的Text属性,您可以这样做:
private void SumCurrencies()
{
var controls = GetChildControls(this);
foreach (var control in controls.Where(c => c is ComboBox))
{
if (control.Text == "USD")
{
// do something
}
else if (control.Text == "GBP")
{
// do something
}
else if (control.Text == "EUR")
{
// do something
}
}
}
int i = 0;
foreach (Control c in this.Controls)
{
if (c is ComboBox)
{
if (c.Text == 'USD')
i++;
}
}