循环中的组合框

本文关键字:组合 循环 | 更新日期: 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++;
    }
}