我有一个名为“NumericIncrementPrecision”的NumericUpDown控件,当我更改此NumericUpDown的值时,它会改变几乎所有NumericUpDown框的增量:
NumericTriggerLocationX.Increment = (decimal)NumericIncrementPrecision.Value;
NumericTriggerLocationY.Increment = (decimal)NumericIncrementPrecision.Value;
[...]
NumericObjectLocationYaw.Increment = (decimal)NumericIncrementPrecision.Value;
但是我在FormBox里面的TabBox里面有100多个NumericUpDown控件,我已经尝试了这个,但没有发生任何事情:
foreach (Control c in TabEditor.Controls)
{
foreach (Control childc in c.Controls)
{
if (childc is NumericUpDown)
{
NumericUpDown test = (NumericUpDown)childc;
test.Increment = (decimal)NumericIncrementPrecision.Value;
}
}
}
有什么想法吗?
谢谢。
答案 0 :(得分:0)
我们需要更深入:
foreach (Control c in TabEditor.Controls)
{
// c will be a TabPage
foreach (Control childc in c.Controls)
{
// childc is a control inside TabPage, e.g GroupBox
foreach (NumericUpDown nud in childc.Controls.OfType<NumericUpDown>())
{
nud.Increment = (decimal)NumericIncrementPrecision.Value;
}
}
}
如果所有NumericUpDow都在一个GroupBox中,那么只检查那个GroupBox:
foreach (NumericUpDown nud in singleGroupBox.Controls.OfType<NumericUpDown>())
{
nud.Increment = (decimal)NumericIncrementPrecision.Value;
}