【发布时间】:2021-01-20 18:57:39
【问题描述】:
我是 c# 新手,我有几个 numericupdown 元素,我想在循环中使用这是我所做的,我还尝试了其他一些东西,例如 foreach。
private void AffecteValeurBinaire(int valeur)
{
nudBinaire3.Value = valeur % 2;
valeur >>= 1;
nudBinaire2.Value = valeur % 2;
valeur >>= 1;
nudBinaire1.Value = valeur % 2;
valeur >>= 1;
nudBinaire0.Value = valeur % 2;
}
我想把上面的代码变成一个循环,这就是我在上面所做的
private NumericUpDown[] nudBinaire = new NumericUpDown[] {nudBinaire3,nudBinaire2,nudBinaire1,nudBinaire0 };
private void AffecteValeurBinaire(int valeur)
{
for (int i = 3; i >= 0; i++)
{
nudBinaire[i].Value = valeur % 2;
valeur >>= 1;
}
}
private void nudDecimal_ValueChanged(object sender, EventArgs e)
{
if (radDecimal.Checked)
{
nudHexadecimal.Value = nudDecimal.Value;
AffecteValeurBinaire(Convert.ToInt32(nudDecimal.Value));
Affiche7Segments(Convert.ToInt32(nudDecimal.Value));
}
}
private void nudBinaire_ValueChanged(object sender, EventArgs e)
{
if (radBinaire.Checked)
{
decimal v = (nudBinaire0.Value * 8) + (nudBinaire1.Value * 4) +
(nudBinaire2.Value * 2) + (nudBinaire3.Value);
nudDecimal.Value = v;
nudHexadecimal.Value = v;
Affiche7Segments(Convert.ToInt32(nudDecimal.Value));
}
}
private void nudHexadecimal_ValueChanged(object sender, EventArgs e)
{
if (radHexadecimal.Checked)
{
nudDecimal.Value = nudHexadecimal.Value;
AffecteValeurBinaire(Convert.ToInt32(nudHexadecimal.Value));
Affiche7Segments(Convert.ToInt32(nudDecimal.Value));
}
}
private void radDecimal_CheckedChanged(object sender, EventArgs e)
{
if (radDecimal.Checked == true)
{
nudDecimal.Enabled = true;
}
}
private void radBinaire_CheckedChanged(object sender, EventArgs e)
{
nudBinaire0.Enabled = nudBinaire1.Enabled = nudBinaire2.Enabled = nudBinaire3.Enabled = radBinaire.Checked;
}
private void radHexadecimal_CheckedChanged(object sender, EventArgs e)
{
nudHexadecimal.Enabled = radHexadecimal.Checked;
}
** 我收到此错误: 字段初始值设定项不能引用该字段**
【问题讨论】:
-
for 循环看起来很有问题。从 3 点开始,到 4 点,一直持续下去。
-
不应该像下面这样循环吗? for (int i = 3; i >= 0; i--) { nudBinaire[i].Value = valeur % 2;价值 >>= 1; }
-
@Nantharupan ,是的,我犯了一个错误,但它不起作用,这些是用窗体设计创建的对象
标签: c# .net visual-studio winforms