我的表單上有超過50個組合框,其中包含項目貨幣(USD,EUR)。每種貨幣都有自己的價格TextBox。循環中的組合框
我想要做的是根據貨幣彙總價格值。 例如,如果我有20美元,我想獲得這20個價格值的總和。 如何循環組合框?
我的表單上有超過50個組合框,其中包含項目貨幣(USD,EUR)。每種貨幣都有自己的價格TextBox。循環中的組合框
我想要做的是根據貨幣彙總價格值。 例如,如果我有20美元,我想獲得這20個價格值的總和。 如何循環組合框?
int i = 0;
foreach (Control c in this.Controls)
{
if (c is ComboBox)
{
if (c.Text == 'USD')
i++;
}
}
您可以使用組合框的。文本屬性,@AYETY建議,但我想這取決於你如何填充他們,如果你想用價值,而不是文字等
無論如何,你沒有說明組合框在表單中的位置,所以如果它們被放置在容器中,則需要遞歸搜索表單上的控件,例如
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
}
}
}
...的組合框通過數組列表添加到一個數組列表,然後循環。 –
組合框或文本框?導航50個組合框可能會有點icky UI明智 – MickyD
Comboboxes.text – AYETY