在这段代码中,我有几个元素,如文本框和按钮,根据情况,有些是可见的,有些是不可见的,就像这样(还有更多元素):
txtTipCOP.Visible = true;
lblIngreseCantidad.Visible = true;
lblEquivale.Visible = true;
txtTCDolar.Visible = false;
txtTCEuro.Visible = false;
btnCantidadInicio.Visible = false;
btnEquivaleInicio.Visible = false;
txtCantidad.Visible = false;
txtEquivalen.Visible = false;
我想优化代码,但我不知道如何控制几个
Visible
属性为1 true,这可能吗?
感谢您的宝贵时间。
我正在单独更改每个
Visible
属性,但我认为这不是最佳方法?
如果您希望将所有这些控件设置为 Visible = true,您可以创建一个 foreach 循环。根据您的需要修改以下内容。
foreach (Control control in Page.Controls)
{
if (control is TextBox || control is Label) // whatever controls you want
{
control.Visible = false;
}
}
但是就性能而言,它可以忽略不计,因为如果你单独设置它们,它会执行相同的操作。就我个人而言,我会选择更易于维护的。
简单地说,你可以这样做:
txtTipCOP.Visible =
lblIngreseCantidad.Visible =
lblEquivale.Visible = true;
txtTCDolar.Visible =
txtTCEuro.Visible =
btnCantidadInicio.Visible =
btnEquivaleInicio.Visible =
txtCantidad.Visible =
txtEquivalen.Visible = false;
更好的方法可能是这样的:
Control[] controls = new Control[]
{
txtTipCOP,
lblIngreseCantidad,
lblEquivale,
txtTCDolar,
txtTCEuro,
btnCantidadInicio,
btnEquivaleInicio,
txtCantidad,
txtEquivalen,
};
controls.Take(3).ForEach(c => c.Visible = true);
controls.Skip(3).ForEach(c => c.Visible = false);
或者:
foreach (Control control in controls.Take(3))
control.Visible = true;
foreach (Control control in controls.Skip(3))
control.Visible = false;
如果您没有
.ForEach
扩展方法,您可以使用 .ToList().ForEach
代替。