【发布时间】:2014-07-07 22:45:53
【问题描述】:
为防止代码重复,我正在寻找以下解决方案:
private void sensor1SetUnits(string newUnit)
{
foreach (Control ctrl in groupBoxSensor1.Controls)
{
// initialize all labels
if (ctrl is Label)
{
((Label)ctrl).Text = newUnit;
}
}
}
private void sensor2SetUnits(string newUnit)
{
foreach (Control ctrl in groupBoxSensor2.Controls)
{
// initialize all labels
if (ctrl is Label)
{
((Label)ctrl).Text = newUnit;
}
}
}
private void uiInitControls()
{
sensor1SetUnits(units.celsius);
sensor2SetUnits(units.celsius);
}
但是,我有 10 多个组框,并且每次都需要将所有标签更改为另一个单元。
我希望是这样的:
private void uiSensorChangeUnits(Control * ptrCtrl)
{
foreach (Control ctrl in ptrCtrl)
{
// initialize all labels
if (ctrl is Label)
{
((Label)ctrl).Text = units.celsius;
}
}
}
private void someFunction()
{
uiSensorChangeUnits(&groupBoxSensor1.Controls);
uiSensorChangeUnits(&groupBoxSensor2.Controls);
}
【问题讨论】:
-
看看
Controls属性返回的类型是什么。将其设为参数的类型,就完成了。 -
C#,但我来自 C